本文共 1193 字,大约阅读时间需要 3 分钟。
本文转自IT摆渡网欢迎转载,请标明出处
更多php文章请阅读
cookie固然好,不过有些客户端浏览器会禁用cookie,这就会导致你所依赖cookies的程序会失效或出错,那么若真出现用户关闭cookies的情况,PHP应该如何再次使用session?方法还是有的。
1、设置php.ini的session.use_trans_sid = 1或者打开enable-trans-sid选项,让PHP自动跨页传递session id。
2、手动通过URL传值、隐藏表单传递session id。
3、用文件、数据库等形式保存session_id,在跨页过程中手动调用。
途径1举例说明:
s1.php
下一页";echo $url;?>
s2.php
运行以上代码,在客户端cookie正常的情况下,应该可以在得到结果“源码爱好者”。
若此时关闭了客户端的cookie,估计就得不到结果了,这时可设置php.ini中的session.use_trans_sid = 1或者编译时打开--enable-trans-sid选项”,此时又可重新得到结果“源码爱好者”
途径2举例说明:
s1.php
下一页";echo $url;?>
s2.php
隐藏表单的方法基本原理同上。
途径3举例说明:login.html
Login 请登录:
mylogin1.php
重新登录";die();}if (!($name=="youngong" && $pass=="123") {echo "用户名或密码不正确,请重新登录";die();}//注册用户ob_start();session_start();$_SESSION[’user’]= $name;$psid=session_id();$fp=fopen("e:\tmp\phpsid.txt","w+";fwrite($fp,$psid);fclose($fp);//身份验证成功,进行相关操作echo "已登录";echo "下一页";?>
mylogin2.php
登录后浏览";die();}?>
请关闭cookie再测试,用户名:youngong 密码:123 这是通过文件保存session id的,文件是:e:tmpphpsid.txt。至于用数据库的方法,就不举例子了,与文件的操作方法类似。以上方法有一个共同点,就是在前一页取得session id,想办法传递到下一页,在下一页的session_start();之前加代码session_id(传过来的session id);希望能为您提供一些参考。