cookie&session
2013-08-22 21:31
429 查看
cookie原理
session用法
session默认保存在系统临时目录下,windows/temp下
可以通过修改session.save_path设置
php没有自动创建目录能力(特别是安全模式下不能创建目录、文件)
session使用注意事项:1.可以再php.ini文件设置auto_start自动开启即可使用session时不用session_start
2.session_start之前有输出,可用@注释掉提示或修改php.ini里output_buffering=4092
销毁session四种方法
\
session_destroy();//销毁文件,$_SESSION数组仍在
$_SESSION=array();//$_SESSION数组赋值为空,session文件仍存在
unset($_SESSION);//销毁session不成功,unset只能销毁session某个值(session数组只能为键值)
一次session操作两次读取session文件,$_SESSION存取是在内存,session文件则是在服务器硬盘,所以在同一脚本可能不一致,再下一脚本又归于一致
session文件的垃圾回收机制由php.ini的session.gc_probability=1个session.gc_divisor=1000决定,默认为1/1000
session入库的实现
cookie与session比较
session用法
session默认保存在系统临时目录下,windows/temp下
可以通过修改session.save_path设置
php没有自动创建目录能力(特别是安全模式下不能创建目录、文件)
session使用注意事项:1.可以再php.ini文件设置auto_start自动开启即可使用session时不用session_start
2.session_start之前有输出,可用@注释掉提示或修改php.ini里output_buffering=4092
销毁session四种方法
\
session_destroy();//销毁文件,$_SESSION数组仍在
$_SESSION=array();//$_SESSION数组赋值为空,session文件仍存在
unset($_SESSION);//销毁session不成功,unset只能销毁session某个值(session数组只能为键值)
一次session操作两次读取session文件,$_SESSION存取是在内存,session文件则是在服务器硬盘,所以在同一脚本可能不一致,再下一脚本又归于一致
session文件的垃圾回收机制由php.ini的session.gc_probability=1个session.gc_divisor=1000决定,默认为1/1000
session入库的实现
<?php //定义六个函数 /** * 在session开启时执行, * 负责完成session存储所需要资源的初始化工作! */ function sess_open() { echo 'open<br>'; //连接数据库 $link = mysql_connect('127.0.0.1:3306', 'root', '123456'); mysql_query('set names utf8'); mysql_query('use itcast'); } /** * session_start()时,开启session时被执行 * * 负责从当的session记录中,将session数据读取出来 * * @param $sess_id string 当前的sessionID * * @return string session的数据,不需要序列化。如果没有读到则返回空字符串! */ function sess_read($sess_id) { echo 'read<br>'; //利用 select 查询 $sql = "select sess_data from `session` where sess_id='$sess_id'"; $result = mysql_query($sql); if($row = mysql_fetch_assoc($result)) { return $row['sess_data']; } else { return ''; } } /** * 在 脚本结束时被执行 * * 负责,将当前的session数据,同步写到当前的session记录中 * * @param $sess_id string * @param $sess_data string * * @return bool */ function sess_write($sess_id, $sess_data) { echo 'write<br>'; //执行写数据的操作! //当前session记录存在则更新sess_data,不存在则插入! $expire = time(); $sql = "insert into `session` values ('$sess_id', '$sess_data', $expire) on duplicate key update sess_data='$sess_data', expire=$expire"; return mysql_query($sql); } /** * 在调用了 session_destroy()系统函数时,被自动调用!\ * 负责的功能时,利用当前id,删除当前的session记录! * * @param $sess_id string * * @return bool */ function sess_destroy($sess_id) { echo 'destroy<br>'; //执行 delete 操作 $sql = "delete from `session` where sess_id='$sess_id'"; return mysql_query($sql); } /** * 在session_start() 是执行 * 负责 删除所有的垃圾数据 * * @param $maxlife int 最大的生命周期 * * @return bool */ function sess_gc($ttl) { echo 'gc<br>'; // $now = time(); $last = $now-$ttl;// $sql = "delete from `session` where expire < $last"; return mysql_query($sql); } /** * 脚本结束 */ function sess_close() { echo 'close<br>'; // mysql_close(); return true; } session_set_save_handler( 'sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy', 'sess_gc' );持久化session
<?php //session_set_cookie_params(3600, '/', '100.com'); session_start(); //setcookie('PHPSESSID', session_id(), time()+3600); $_SESSION['name'] = 'php'; var_dump($_SESSION); header('Location: 106.php?PHPSESSID='.session_id());//禁用cookie //先设置session.use_only_cookie=0 和 session.use_trans_sid=1 ?> <a href="106.php"> 106.php</a>同时session.ga_maxtime与cookie设置session_id时间同步
cookie与session比较
相关文章推荐
- day_1_12 JavaWeb系列学习总结之cookie&session
- cookie & session
- session & Cookie 简述
- JavaWeb学习篇之----Session&&Cookie
- 超全面的JavaWeb笔记day11<JSP&Session&Cookie&HttpSession>
- Web编程-->Cookie和Session的区别
- day09-cookie&sessionの代码学习1
- java_web初学笔记之<Session与Cookie>
- JAVA互联网架构学习之cookie&session
- cookie & session
- cookie&&session
- Cookie&Session
- Cookie&Session
- Cookie 和session的区别,<%@include和jsp:include的区别,forward和sendredirect的区别
- 【Head First Servlets and JSP】笔记13:session & cookie
- Java学习之Cookie&Session
- Python+Django+SAE系列教程16-----cookie&session
- JavaWeb之Cookie&&Session详解
- 本地存储(cookie&&sessionStorage&&localStorage)
- 保存状态: Session && Cookie