博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php在客户端禁用cookie时让session不失效的解决方法
阅读量:6295 次
发布时间:2019-06-22

本文共 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);希望能为您提供一些参考。

你可能感兴趣的文章
linux 常用命令
查看>>
Java--运算符
查看>>
php总结3——基本函数、流程控制中的循环
查看>>
我的博客css得到别人的认可
查看>>
Dockerfile构建MySQL
查看>>
唯一正确的修改Jupyter Notebook默认路径的方法
查看>>
Python 基础学习之序列及列表操作小结
查看>>
实验五 网络对抗技术
查看>>
JSP+Servlet+DAO+Javabean模式小记-20171029
查看>>
android drawable size
查看>>
Linux 字符设备控制技术
查看>>
JavaScript循环读书笔记
查看>>
C++模式学习------单例模式
查看>>
PHP基础
查看>>
NUC1429 WERTYU【输入输出】
查看>>
I00027 Java语言程序-打印九九乘法表
查看>>
springBoot访问HTML,jsp文件
查看>>
vue中使用定时器时this指向
查看>>
js代码规范
查看>>
转:环绕通知返回值 object 类型
查看>>