问题描述:laravel写项目时,导入外部验证码类,并调用其生成的验证码(其验证码已经用session存储起来)时报如题的错误。
解决方法 :经查阅,很多第一次接触项目的小伙伴都会入坑。错误的原因是laravel框架默认是关闭session的,我们要手动开启。开启的方式有两种。
1.修改php.ini文件中的session.auto_start = 0设置为session.auto_start = 1即可。就如字面意思,下次做项目时,他会自动打开session,所以如果你不想让他自动打开要注意一下哦~!
我看网上都只说修改php.ini,却没说这个文件在哪,相信有些不熟悉的小伙伴又犯难了。别怕,我来做个好人:
打开你的集成环境,我用的是phpstudy,
点其他选项菜单后有打开配置文件,里面有php.ini的位置。然后的操作应该都会吧,ctrl+f 直接 搜就OK了 !
2.在index.php文件的头部(注意,前面不能有其他代码!!!)加入 session_start(); 即可。
这里其实还有坑,如果是laravel5.2中的话,把server.php改为index.php并加入 session_start(); 即可。如果是laravel5.6,它其实已经有了index.php文件了(这里我被坑死了,我一直按laravel5.2方式,一直错,原因就是session没开启成功),他在public目录下,在这里的头部加入session_start(); 就可以了。
结果成功取出验证码: