auth
test
session设置
php.ini设置
session.save_handler = files
;session.save_path = "/tmp"
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.auto_start 开启就自动完成了session_start()
区别就在于在用SESSION前是否需要session_start();
当session.auto_start = on时,执行 session_start() 将产生新的 session_id
session.auto_start = on 的优点在于,任何时候都不会因忘记执行 session_start() 或 session_start() 在程序里的位置不对,而导致错误
缺点在于,如果你使用的是第三方代码,则必须删去其中的全部 session_start() 。否则将不能得到正确的结果
验证时产生sessionid:
<?php
session_start();
$sessionid = session_id();
$_SESSION['name'] = 'vick';
?>
客户端带sessionid请求数据:
<?php
$sessionid = $_REQUEST['sessionid'];
session_id($sessionid);
session_start();
echo $_SESSION['name'];
客户端退出登录:
session_unset():释放当前在内存中已经创建的所有$_SESSION变量,但是不删除session文件以及不释放对应的session id;
session_destroy():删除当前用户对应的session文件以及释放session id,内存中$_SESSION变量内容依然保留;
public function logout(){
$_SESSION = array(); //清除SESSION值.
if (isset($_COOKIE[session_name()])){ //判断客户端的cookie文件是否存在,存在的话将其设置为过期.
setcookie(session_name(),'',time()-1,'/');
}
session_destroy(); //清除服务器的sesion文件
}