当我使用我的凭据登录页面并离开该页面而没有注销时,下次我访问同一页面时我会再次自动登录。
这背后的机制是什么?如何使用PHP实现这一点?
答案 0 :(得分:0)
会话和Cookie在 PHP Documentation 中都有各自的部分。
我会尽量简短地介绍一下每种方法的运作方式:
Cookie是以key = value格式保存到客户端计算机的文件,客户端可以通过两种方式保存cookie,
我们对#2感兴趣,您可以使用PHP发送cookie标头,请求客户端保存cookie(请注意,客户端可能会也可能不会实现此请求)。< / p>
在下一个请求中,您可以使用$_COOKIE
超全局检查客户端发送的cookie及其HTTP请求。
会话是一组变量(以关联数组的形式),保存在服务器端,并与唯一会话ID 链接。该会话ID被发送到客户端(通常以cookie的形式)。当客户端然后从服务器请求页面时,它会发送会话ID以及请求。服务器读取它,并获取与ID关联的变量(通常来自文件或数据库),并将其设置为$_SESSION
超全局。
了解这一点可以帮助您弄清楚如何制作粘性登录系统。
答案 1 :(得分:0)
它只是一个简单的会话功能..对于Session,只需引用此链接
http://www.tizag.com/phpT/phpsessions.php
如果你想使用cookies ..使用这个概念..下面
<html><head><script type="text/javascript">function getCookie(c_name){var i,x,y,ARRcookies=document.cookie.split(";");for (i=0;i<ARRcookies.length;i++) { x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); x=x.replace(/^\s+|\s+$/g,""); if (x==c_name) { return unescape(y); } }}function setCookie(c_name,value,exdays){var exdate=new Date();exdate.setDate(exdate.getDate() + exdays);var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());document.cookie=c_name + "=" + c_value;}function checkCookie(){var username=getCookie("username");if (username!=null && username!="") { alert("Welcome again " + username); }else { username=prompt("Please enter your name:",""); if (username!=null && username!="") { setCookie("username",username,365); } }}</script></head><body onload="checkCookie()"></body></html>