最近遇到一个问题,就是跨域会丢失session的问题,然后一开始想到的就是用token做,但是后来做忘记密码这个功能,涉及到的类文件库里面有session,会丢失导致验证一直失败,思路就变了。也是查阅了很多资料,借鉴了很多前辈的经验,经过不断测试,终于解决了这个问题。
这里是把tp自带的verify类改写成redis方式实现的。这个可以查看我上一篇文章。
一开始是redis 类没有建立。然后我看了下,TP是自带的。我就在想是不是文件引入问题,后来发现怎么修改也不对。于是继续查资料。继续测试,总是redis sever went away。百度后,解决办法是 先看redis是否能开启,防火墙问题,redis端口问题。但是无论怎么弄依旧是没有解决。很恼火。
然后就自己写了个demo,发现系统不存在redis.于是就百度找。需要安装redis拓展,php_igbinary.dll
和php_redis.dll。然后
将里面的php_igbinary.dll和php_redis.dll放置到wampserver\wamp\bin\php\php5.5.12\ext
中。
同时,在文件wampserver\wamp\bin\php\php5.5.12\php.ini
中,添加上:
;redis
extension=php_igbinary.dll
extension=php_redis.dll
这里涉及到2个问题,一个是下载的时候,先用phpinfo查看一下自己的信息
然后找到对应的去下载。具体操作可以看我下面的链接,别人写的很详细。然后,下载redis,解压后放到一个盘下,我是放到D盘的,这个无所谓。然后在cmd中的redis目录下输入
redis-server.exe redis.windows.conf
如果展示如下信息,则说明已启动成功
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.0.503 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 4080
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
[4080] 27 Aug 21:45:53.723 # Server started, Redis version 3.0.503
[4080] 27 Aug 21:45:53.724 * DB loaded from disk: 0.000 seconds
[4080] 27 Aug 21:45:53.724 * The server is now ready to accept connections on port 6379
看到上图,就说明安装成功了,这里切记,一定不要关闭这个,否则Redis没法使用。
直到我测试成功,回想一下,问题的根源是我的验证码类文件无法读取到config配置,导致根本就没链接上redis,所以无法使用。这里也是我自己写死值测试才发现的。
这期间还设计到一个问题,就是tp自带的redis类文件,百度说是有Bug的,因为它继承了Cache类文件,这个类文件中的getInstance方法中,获取实例导致链接过多。to_guid_string方法获取唯一值方法没错,错误在使用$options直接获取,而$options中带有缓存key,所以,每次cache调用的时候,就重新连接redis一次。改为
不过,我发现我没改也没影响,这个大家可以自己测测看。还有个就是AUTH,这个其实就是个密码,更加安全。
这次遇到这个问题,还是自己经验不够,经过查资料解决问题后,也学到了知识,感谢前辈留下的资料。自己写这篇文章给自己做个笔记的同时,也给后来的人少走点弯路,节省点时间吧。
参考资料链接:
https://www.xiabingbao.com/php/2017/08/27/window-php-redis.html
http://www.thinkphp.cn/bug/3491.html
https://blog.csdn.net/sobeautiy/article/details/49450417
https://my.oschina.net/swingcoder/blog/1942445
https://blog.csdn.net/dengjiexian123/article/details/53047486
https://blog.csdn.net/weixin_42261421/article/details/83215436