在用ThinkPHP5的过程中,要用到Session。 但是我的项目出现了如下问题,在http://localhost/index/index/index页面下,提交表单,表单操作是在http://localhost/index/index/dosubmit.html?fname=123123&lname=123123下完成的,在表单提交的处理方法里用Session::set()方法保存了一个数据
来源: ThinkPHP5在WAMP环境下Session无法跨页传递的问题 – CSDN博客
在用ThinkPHP5的过程中,要用到Session。
但是我的项目出现了如下问题,在http://localhost/index/index/index页面下,提交表单,表单操作是在http://localhost/index/index/dosubmit.html?fname=123123&lname=123123下完成的,在表单提交的处理方法里用Session::set()方法保存了一个数据。
很奇怪的是,两个页面中获取Session_id,都是一样的ID,但是在http://localhost/index/index/dosubmit.html这个页面下,我是能从Session中取出数据的,但是在http://localhost/index/index/index页面下,使用Session::get()方法,就什么也取不出来。
这个问题的解决主要参考了
http://www.daixiaorui.com/read/99.html
但是按照他的方法我没有解决,但是他给了我思路,就是用查看phpinfo。
创建一下文件phpinfo.php
<?php
phpinfo();
?>
- 1
- 2
- 3
把这个文件放到thinkphp5框架下的public文件夹下,然后就能够在浏览器中访问这个页面了,我的访问路径是(我配置了url,如果thinkphp5没配置过,访问路径应该是http://localhost/tp5/public/phpinfo.php):
http://localhost/phpinfo.php
然后搜Session,我能正确跨页获取Session,修改了以下配置
我觉得主要是最优一个use_trans_id这个属性改为1以后生效的。
至于如何修改use_trans_id,我不是在ThinkPHP5的配置文件里改的,我直接去修改了WAMP中PHP的php.ini文件。
修改方法:
然后用ctrl+F的方式,找到要修改的属性,改完之后,重启所有服务。
然后THinkPHP5就可以跨页面读取Session了。
后记:我在另一台机器上没有修改那么多属性,就是把php.ini的Session.auto_start给设置成1了,Session就能够跨页传递了。