B/S请求响应模式是无状态的。任意的请求间不存在任何的联系,不能将请求状态保持下去。
会话技术可以给每个浏览器分配持久数据,这些数据不会随着一次请求和相应结束而销毁。
cookie是一种允许服务器端脚本在浏览器端存储数据的技术。
cookie特点:
setCookie(KEY, VALUE, [有效期(时间戳表示)], [有效路径], [有效域], [是否仅安全传输], [HTTPONLY])
==setCookie()前不能存在任何的输出==
KEY:
设置成数组形式(user[name])在浏览器保存时是字符串,获取时被PHP整理成数组。
有效期:
有效路径:
有效域:
是否仅安全传输:
HTTPONLY:
setCookie(‘is_click‘, ‘true‘, time()+3600*24*30, ‘/‘, ‘.kongciyuan.com‘, false, true);
setCookie(KEY, 新VALUE, 新[有效期(时间戳表示)], 新[有效路径], 新[有效域], 新[是否仅安全传输], 新[HTTPONLY])
setCookie(‘is_click‘, ‘false‘, time()+3600*24*30, ‘/‘, ‘.kongciyuan.com‘, false, true);
标准做法:setCookie(‘KEY, ‘‘, time()-1)
还可以使用:setCookie(KEY, ‘‘)或setCookie(KEY)
使用超全局数组变量:$_COOKIE
浏览器在向服务器发送请求时,会检测cookie的是否有效,只有没有过有效期的cookie数据请求时,才会携带。
将数据存储在服务器端,浏览器只储存sessionid
使用session_starat();函数,或在php.ini中设置session.auto_start = 1自动开启session
==session_start()函数前不应该有输出==
通过对$_SESSION数组操作就完成对SESSION的操作。
完全整删除session全部数据:
//数据区,$_SESSION全局数组,存sessionid的cookieSession_destroy();unset($_SESSION);setCookie(session_name(), ‘‘, time()-1);
清空session数据:
不要:unset($_SESSION);
使用:$_SESSION = array();
session属性特征由浏览器的cookie中存储的sessionid决定
session.cookie_lifetime = 0session.cookie_path = /session.cookie_domain =session.cookie_secure =session.cookie_httponly =
使用函数session_destroy():删除当前session对应的数据区,关闭session机制(关闭session机制后,余下的session操作都不处理)
session销毁只将持久化的session清除了,$_SESSION变量是不会自动消失的。
注意:
<?php//配置session存储机制ini_set(‘session.save_handler‘, ‘user‘);//设置session处理器//session_set_save_handler(开始函数, 结束函数, 读函数, 写函数, 删除函数, 垃圾回收函数)session_set_save_handler( ‘userSessionBegin‘, ‘userSessionEnd‘, ‘userSessionRead‘, ‘userSessionWrite‘, ‘userSessionDelete‘, ‘userSessionGC‘);echo ‘start‘.‘</br>‘;session_start();//执行userSessionBegin,userSessionReadecho ‘</br>‘.‘set‘.‘</br>‘;$_SESSION[‘user‘] = ‘root‘;//没有使用函数echo ‘</br>‘.‘get‘.‘</br>‘;//没有使用函数$_SESSION[‘user‘];echo ‘</br>‘.‘del‘.‘</br>‘;session_destroy();//使用session_destroy()执行userSessionDelete,否则执行userSessionWritefunction userSessionBegin() { echo ‘userSessionBegin‘.‘</br>‘;}function userSessionEnd() { echo ‘userSessionEnd‘.‘</br>‘;}function userSessionRead() { echo ‘userSessionRead‘.‘</br>‘;}function userSessionWrite() { echo ‘userSessionWrite‘.‘</br>‘;}function userSessionDelete() { echo ‘userSessionDelete‘.‘</br>‘;}function userSessionGC() { /* 概率分子:session.gc_probability = 1 概率分母:session.gc_divisor = 1000 session最长时间:session.gc_maxlifetime = 1800 */ echo ‘userSessionGC‘.‘</br>‘;}