网站session技术
网站session技术session技术,也是会话技术——即用于区分不同用户(浏览器)的一种技术;session技术,它是把数据存储在“服务器端”;session技术,它基本上依赖于cookie技术。
工具/原料
网站session技术
session技术原理:
1、不同的用户,在浏览使用网站过程中,会产生不同的数据;这些数据,都可以存储在服务器端——但必须解决一个问题:哪份数据是哪个用户(浏览器的);解决之道:在存储某份数据的时候,生成一个不会重复的唯一的cookie数据,并将该cookie发给浏览器。则该浏览器重新请求其他网页时,就可以将该cookie数据返回来,以识别出原来存储的“自己的”数据。原理图:
2、实际上,该用来标识一个用户的“唯一身份”的cookie数据:其名字为:PHPSESSID //其实就是cookie名。其值类似:40324;e320424;w$$%@s32455235 ——随机不重复!
session使用初步
1、就两件事:赋值:$_SESSION[‘名’] = 值;取值:$v1 = $_SESSION[‘名’];可见:1,session的使用,几乎跟用数组就一样了!2,实际上,前提是:先要“开启”session:session_start(); 即该代码是需要先执行session_start()才好使3,session名跟cookie一样了,自己取名(类似变量名)4,session值:几乎可以是各种类型的数据;举例:7session-base-1.php中:
2、7session-base-2.php中:
3、在没有浏览7session-base-1.php之前,先浏览7session-base-2.php,则都显示“没有session”。浏览7session-base-1.php之后,在浏览7session-base-2.php,则都显示“有session....”我们来观察一下浏览器中“多出来”的cookie数据:
4、这种数据(名为PHPSESSID的cookie数据),是在session_start()这一行代码执行的时候产生的。
session细化
1、通常:cookie用于存储“持久数据”——即关闭浏览器后,“以后”再打开还有效的数据,可以设定一个应用中合适的有效时间而已;session用于存储“会话数据”——即只在浏览器窗口存活周期有效,关闭就无效了。——但也有一个默认的最大时间(通常是24分钟);
2、基本设定:可以设定有效作辈碇锅周期:浏览器窗口生存周期——即关闭浏览器就结束了;用session.cookie_lifet足毂忍珩ime,其实是设定的session对应的cookie的有效时间默认不设置,就是0,表示是“浏览器生存周期”可以设定有效路径:全站有效;用session.cookie_path,默认不设置,就是“全站有效”可以设定有效域名:当前域名有效;用session.cookie_domain。默认不设置,就是“当前站点有效”他们有两种设置法:方法1:php.ini中:影响全局
3、方法2:直接带代码中:只影响当前网页ini_set(“session.cookie_lifetime”, 60*1); //60秒*1分钟注意这里的写法,跟cookie设置周期的不同:cookie是:time() + 60*1ini_set(“session.cookie_path”, ‘/d1’); //或者“/”ini_set(‘session.cookie_domain”, “xxx.com”); //演示代码:8session-expire-1.php中:
4、8session-expire-2.php中:
5、先浏览8session-expire-1.php,茸垂扌馔则在一分钟之内浏览8session-expire-2.php,可以看到“有session”但如果在一分钟之后浏览8session-髫潋啜缅expire-2.php,可以看到“没有session”。原因就是:1分钟之后,该session数据对应的PHPSESSID的cookie数据已经超时,无法传回到服务器端。以上几项的设置,可以使用一个函数一次性搞定:session_set_cookie_params( 超时时间秒,'路径', '域名')比如:session_set_cookie_params( 60*12, ‘/’, ‘php44.com’); //12分钟超时。