1
Dannytmp 2015-10-22 13:23:59 +08:00
laravel 官网不知用了哪些被强的服务,很难打得开啊
|
4
denghongcai 2015-10-22 14:59:22 +08:00 1
Github 上 Laravel 的仓库有对应的 issue ,但是被强制关了,按作者的话说:确实没法重现
尝试以下步骤: 1. 把 fpm 的 worker 数量减为 1 ,看问题是否存在 2. 开发者工具查看 session id 是不是在变动,哪一步变动了,有时候是因为 404 错误导致 session 被重置(例如 Chrome 会自动请求网站的 favicon.ico ) 3. 用 Memcached 或者 Redis 作为 Session 的存储 |
5
dongcheng OP @denghongcai 我的环境是 laravel 5.1/XAMPP Version: 5.6.8/Windows 7 Ultimate SP1 64-bit/php 5.6.8
难道都是用 redis 和 memcached 做 session? 我在 github 提交的 issue 也被关闭了,回复说 file 做 session 不能用生产环境,要用 redis ?其实我,本来是 file 改成 cookie 还是出问题,在想是不是改成 database 。 |
6
dongcheng OP @denghongcai
我发现一个有用的评论 https://github.com/laravel/framework/issues/9522 iLeoDo 说是 blade template 模板的原因 我建了一个简单的表单,没有用 blade ,结果提交了一下, SESSION 也正常了, TokenMismatchException 也没有了!!? 据说在过程里中断会出现 SESSION 问题, blade 模板里中断了? |
7
denghongcai 2015-10-24 11:31:11 +08:00 1
Laravel 的 Session 是在整个请求流程结束之后的 after middleware 进行处理的,如果在控制器或者在模板中直接调用 exit(), die()之类的函数退出就可能出现 Session 未被处理的问题
|
8
dongcheng OP |