会话掌控
由于 HTTP 是没状态的协议,无办法记录多个事务请求间的状态。即拜访一个页面请求后再请求另一个页面时没法判断两次请求来自同一下用户。
会话原理
在PHP中实现会话的原理是为用户分配一个独一的加密ID,并保留在用户客户端,并在全部会话时间周期内有效。
通常状况下运用cookie来进行保留,但亦可以经过url传递。
用户经过携带会话ID到服务器获取内容。
COOKIE
cookie是客户端存储数据的手段,并在请求服务器时自动携带cookie数据。
设置
PHP中运用 setcookie() 函数用户客户端cookie数据。
setcookie ( string $name [, string $value = "" [, int $expires = 0 [, string $path = "" [, string $domain = "" [, bool $secure = FALSE [, bool $httponly = FALSE ]]]]]] ) : bool
参数说明如下:
参数说明nameCookie的名叫作valuecookie的价值。该值存储在客户端计算机上; 不要存储敏锐信息expiresCookie过期的时间。这是一个Unix时间戳,能够运用time()函数加上期盼它到期之前的秒数来设置它。path服务器上能够运用cookie的路径。倘若设置为“/”,则cookie将在全部范围内可用domaincookie可用的域。(例如“www.houdunren.com”)将使cookie可用于该子域及其所有其他子域(即http://w2.www.houdunren.com)。要使cookie可用于全部域(包含其所有子域),只需将值设置为域名(在本例中为“houdunren.com”)secure暗示cookie应仅经过客户端的安全HTTPS连接传输httponly当TRUEcookie只能经过HTTP协议拜访时。这寓意着脚本语言(例如JavaScript)没法拜访cookie。
读取
由于cookie保留在客户端并在请求时提交到后台服务器,因此能够在前台与后台拜访到cookie。
前台运用 document.cookie 获取cookie数据
document.cookie
后台运用超全避数组$_COOKIE读取
print_r($_COOKIE);
运用
设置会话cookie,当关闭浏览器时自动删除
setcookie(web,houdunren.com);
设置七天内有效的cookie
setcookie(web,houdunren.com,time()+60*60*24*7);
只准许cookie在 /app 拜访路径中有效
setcookie(web,houdunren.com,0,/app)
设置拜访域名
setcookie(web,hdcms.com,0,/,php.test)
设置只准许https拜访
setcookie(web,hdcms.com,0,/,,true);
不准许javascript操作cookie
setcookie(web,hdcms.com,0,,,false,false,true);
将cookie的到期时间设置为过去时间,就能够删除cookie。
setcookie(name,,1);
SESSION
session是服务器会话状态,可用于记录拜访用户后台会话数据。
基本运用
开启会话
必要要开启 SESSION 才能够运用,有两种办法能够开启会话。 运用脚本开启会话,要保准在运用会话的所有脚本中执行。session_start(); 经过修改php.ini配置项 session.auto_start,自动开启会话(不意见运用)会话变量
运用超全局数组 $_SESSION 来运用会话变量。
设置变量
$_SESSION[name]=houdunren.com;
删除变量
unset($_
|