客户端第一次访问某服务器,为每圆周运动教案个访问者创建一个唯一的 id (uid),并基于这个 uid 来存储变量。uid 存储在 cookie 中,亦或通过 url 进行传导。
ssionid的生产算法原理如下:
hash_func = md5 / sha1 #可由php.ini配置 ssionid = hash_func(客户端ip + 当前时间(秒)+ 当前时间(微妙)+ php自带的随机数生产器)
hash_func(*)中的数据采样值的内容分析,多个用户在同一台服务器时所生产的ssionid好歌推荐100首重复的概率极低(至少为百万份之一)。
黑客如果要猜出某一用户的ssionid,则他也必须知道“客户端ip、当前时间(秒、微妙)、随机数”等数据方可模拟。
php.ini配置如下:
; lect a hash function for u in generating ssion ids.; possible values; 0 (md5 128 bits); 1 (sha-1 160 bits); this option may also be t to the name of any hash function supported by; the hash extension. a list of available hashes is returned by the hash_algos(); function.; /d/file/titlepic/manual-lookup.php ssion工作原理ssion 技术相当于cookie技术的升级版,cookie的工作机制是将信息记录在客户端,而ssion技术是将信息存放在服务器端,服务器存储信息的方式有很多,可以是文件、数据库和内存等,这里以文件的存储方式介绍ssion的工作步骤。
(1)客户端第一次访问某服务器。
(2)服务器通过cookie发送ssionid给客户端,并在服务器建立一个与ssionid同名的文件用于存储信息,而ssionid不能重复,即不同的客户端的ssionid是不同的。
(3)客户端再次访问服务器时会携带服务器发送给客户端的ssionid。
(4)服务器根据客户端发送的ssionid查找对应的文件,读取文件内容。通过上面的步骤可以看出,ssion的工作依赖cookie的工作,当然不用cookie也可以实现ssionid的传递,如url,但是用cookie最方便。
php本身的ssion是如何工作的呢
首先,在需要共享客户端信息的文件中通过ssion_start()函数开启ssion, 然后就可以向$_ssion全局数组中存入或读取数据,而$_ssion数组与其他数组不同的是,当向该数组中添加数据时,php还会将其中的数据系列化写入ssion文件中,每次开启ssion时,php会将ssion文件中的数据读取到该全局数组中,实现数据共享的功能。
php_cli模式通过ssion_id()使用ssion
可以通过它来获取当前会话的phpssid,也可以通过它来设置当前的会话phpssid。 php_cli模式下可以通过设置这个,达到使用ssion的目的,非常方便。
例如:
<?php// ssion_id('vingbrv8m磁盘清理有什么用64asth0nhplu9gmb7');ssion_start();$_ssion[md5(rand(100,999))] = rand(100,999);var_dump($_ssion);下面看看一个实际例子,助你加强对ssion的认识
//ssion初始化的时候调用function open($save_path, $ssion_name){ global $ss_save_path; $ss_save_path = $save_path; return(true);}//关闭的时候调用function clo(){ return(true);}function read($id){ global $ss_save_path; $ss_file = "$ss_save_path/ss_$id"; return (string) @file_get_contents($ss_file);}//脚本执行结束之前,执行写入操作function write($id, $ss_data){ echo "sdfsf"; global $ss_save_path; $ss_file = "$ss_save_path/ss_$id"; if ($fp = @fopen($ss_file, "w")) { $return = fwrite($fp, $ss_data); fclo($fp); return $return; } el { return(fal); }}function destroy($id){ global $ss_save_path; $ss_file = "$ss_save_path/ss_$id"; return(@unlink($ss_file));}function gc($maxlifetime){ global $ss_save_path; foreach (glob("$ss_save_path/ss_*") as $filename) { if (filemtime($filename) + $maxlifetime < time()) { @unlink($filename); } } return true;}补充–涉及到的函数
ssion_start();// 开启ssion回话,其中ssion_id()的值是一次独立会话的标志ssion_name(); // 默认是phpssid,在php.ini文件中可以自行配置。ssion_id(); // 在cookie中的体现是,ssion_name为键,ssion52硬件_i活动铅笔d为值tcookie(); // 要想起作用,必须有页面的刷新ssion_destory(); // ssion_destroy — 销毁一个会话中的全部数据
本文发布于:2023-04-05 23:57:30,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/c3f52c4c1230f9a69b42323a535d1b45.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:php开启session代码(讲述php设置session有效期).doc
本文 PDF 下载地址:php开启session代码(讲述php设置session有效期).pdf
留言与评论(共有 0 条评论) |