客户端禁止COOKIE
当客户端禁用COOKIE时,SESSION页面间传递会失效,可以将客户端禁止COOKIE想象成一家大型连锁超市,如果在其中一家超市内办理了会员卡,但是超市之间并没有联网,那么会员卡就只能在办理的那家超市使用。解决这个问题有4种方法:
(1)在登录之前提醒用户必须打开Cookie,这是很多论坛的做法。
(2) 设置php.ini文件中的session.use_trans_sid=1,或者编译时打开-enable-trans-sid选项,让PHP自动跨页面传递session_id.
(3) 通过 GET 方法,隐藏表单传递session_id.
(4) 使用文件或者数据库存储session_id,在页面间传递中手动调用。
第二种情况不作详细讲解,因为用户不能修改服务器中的php.ini文件。第3种情况我们就不可以使用cookie设置保存时间,但是登录情况没有变化。第4种也是最为重要的一种,在开发企业级网站时,如果遇到session文件使服务器速度变慢,就可以使用。在Session高级应用中会作详细解说。
第三种情况使用 GET 方式传输,实例关键代码如下:
<form id="form1" name="form1" method="post" action="common.php?<?=session_name();?>=<?=session_id;?>">
接收页面头部详细代码:
<?php
$sess_name=session_name(); //取得Session名称
$sess_id=$_GET[$sess_name]; //取得session_id GET方式
session_id($sess_id); //关键步骤
session_start();
$_SESSION['admin']='mrsoft';
?>
说明:Session原理为请求该页面之后会产生一个session_id,如果这个时候禁止了cookie就无法传递session_id,在请求下一个页面时将会重新产生一个 session_id,这样就造成了 session 在页面间传递失效。
这个程序有没有漏洞啊
学习了
技术博。
很不错的,支持了
是个好办法