phpcms后台验证码不正确,登录后闪退情况解决 cookie_httponly

碰到一个问题,领导配置的PHPcms后台验证码不正确,登录后闪退情况解决。

估计前台也有这个问题。

开始在网上查

 第一种可能:phpcms v9 登录是采用session ,保存session 有两种方式,一种是数据库存储的方式,一种是文件存储方式,默认是数据库存储方式。有时数据库这种方式不行,可以在 \caches\configs\system.php 中修改sesion 的存储方式//Session配置 'session_storage' => 'mysql',将其改为//Session配置'session_storage' => 'files',试试。

  第二种可能:php配置环境问题,在PHP.INI 中 改成register_globals = On 打开 默认是register_globals = off,再就是要保证session.cookie_path = "缓存文件保存目录,改为"session.cookie_path = /"都有可能无法登录。

  第三种:hosts 文件问题,将你想要的域名指向本地 例如:ww.huxiaoguang.com 127.0.0.1 增加这一行 ,域名改成你想要的域名 ,然后再本地使用你的域名安装PHPCMS ,这样有个好处就是避免你在本地安装后 ,然后上传到服务器之后又要修改\caches\configs\system.php 配置文件,而且还要清空一些缓存.


      第四种缓存配置文件配置错误的,也有可能出现错误!

有所谓的几种解决方法 使用第一种可以在 \caches\configs\system.php 中修改sesion 的存储方式//Session配置 'session_storage' => 'mysql',将其改为//Session配置'session_storage' => 'files' 

切换了无数次 无效,第二方法php.ini里没找到那一个

试了一下午毫无头绪,思考一下,这些都用session有关

便在登录方法时打印session

 

   var_dump($_SESSION);

发现登录时会有SESSION

但登录成功后跳转index时

SESSION却为空了!

 

/**
     * 判断用户是否已经登陆
     */
    final public function check_admin() {
   
            var_dump($_SESSION);
        
    }

 

然后继续在这个地方研究,网上查,两个小时还是毫无头绪。。。

幸好之前有一个正常运行的phpcms项目,便将文件进行对比

终于在这个文件比较时发现问题。

session_mysql

 

去掉ini_set("session.cookie_httponly", 1);

httponly是微软对cookie做的扩展。这个主要是解决用户的cookie可能被盗用的问题。

那HttpOnly就是在设置cookie时接受这样一个参数,一旦被设置,在浏览器的document对象中就看不到cookie了。

因为所谓领导使用的时ip地址,目前还不能确定的说,所以只是可能是ip访问的原因,ini_set("session.cookie_httponly", 1);时cookie不能被访问,sessionId获取不到,所以!!!访问不到对应session数据

所以session为空!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值