session
1.
SESSION是一个变量,脚本结束时,它就被释放2.
_SESSION在被销毁前,将其中的数据保存到某个地方,使用session_start()方法之后,将数据从某个地方取得,然后放入
SESSION数组内部。这样
_SESSION可以传递到下一个页面,过程为:保存数据->销毁->创建->获得数据
3.数据丢失发生在浏览器被关闭的时候,会话数据的有效期结束就是会话结束(会话结束就是浏览器关闭)。
4.会话数据指会话期内有效的数据,就是会话数据,会话则是指浏览器与服务器之间的会话。
5.服务器怎么识别浏览器?
在第一次请求时,浏览器会生成SESSION ID。在以后的请求中,浏览器将携带这个标志来请求服务器,这样服务器就能够识别出来是不是同一个浏览器的请求。(标志相同说明是同一个浏览器)。
6.服务器会为不同的SESSION ID生成不同的数据保存空间(不同的文件)
cookie
1.服务器在浏览器上做记号,将某个特殊的数据保存到浏览器上,那么就意味着服务器可以在浏览器上保存数据。浏览器发送请求时,能够将数据传递到服务器端。这种服务器在浏览器保存数据的操作,是通过cookie技术来完成的。
2.Cookie变量的有效期默认是浏览器关闭,session的id是保存在cookie内的,一旦关闭浏览器 cookie失效,同时 cookie内的session_id失效,导致 session失效。
3.我们都更改cookie变量的有效期,达到数据长时间保存的目的。
setcookie函数的第三个参数来达到效果:
有效期指的是一个到期时间,使用时间戳来表示。
Setcookie(‘变量名’, ‘变量值’, 有效期);
例如:
将cookie变量保存一个小时:当前的时间戳 + 3600s即可。
Time()获得当前的时间戳。
setcookie(‘cookie_p1’,’php1025’,time()+3600);
保存2周
setcookie(‘cookie_p2’,’php1025’,time()+3600*24*7*2);
4.cookie保存到浏览器端,区别于不同的浏览器,保存形式不一样
例如:火狐是sqlite数据库保存cookie,我们利用sesssion技术,完成用户登录,登录成功后,将当前管理员的信息保存到session中,在判断时判断是否有管理员的信息
Privilege.php act=signin
session_start();
SESSION[′admin′]=
result;//在会话数据内,增加一个变量,用来保存当前管理员的信息
index.php
session_start();
if(isset(_SESSION['admin'])){//直接判断_SESSION的标志
}
由于后台操作,都需要对用户的session进行验证,因此都需要session_start(),应该将session_start();放到公共的地方:
/admin/incluedes/init.php