• 二级目录下的SESSION共享问题


      今天碰到个在二级目录下SESSION共享的问题,百度了下,类似的问题好像都是二级域名下的session共享,而且是要实现共享,但我现在的问题的是禁止session共享,因为二级目录下默认情况就是session共享。出现这个问题的原因是,在主站下部署了多个子站,放在了二级目录下(没有使用二级域名的原因是证书的问题,二级目录可以共用主站的证书)。查来查去,最后还是解决的这个问题,方法比较简单,但是没有看到别人问这个问题与,在此记录下,方便其他碰到这个问题的程序猿们有个参考的方法。

      首先来了解下php.ini中有关session和cookie的几个设置。

      session.cookie_domain:session的作用域

      session.cookie_path:session的作用和路径,php.ini中,session.cookie_path设置过于严格。比如设置为:session.cookie_path = /hjaa/也就是说只允许根域名下面的hjaa目录和子目录才能使用session(更确切来讲,如果session.cookie_domain设置 了A域名,则表示A域名下的hjaa目录和子目录才允许使用session)。   解决办法:将php.ini中的session.cookie_path设置为“/”(不含双引号)或者你认为的更加宽松的安全设置,比如: session.cookie_path = /

      session.save_path:session的存储路径

      session.save_handler:(没发现有使用这个的地方)

      了解了这些,就知道怎么解决问题了,将子目录的session放在子目录下的根目录下(默认是放在主站根目录下的),只用一句代码即可搞定(放在子目录中的根目录下的index.php文件中):

      

      这是在window下的,其中/shop是二级目录的名字。

      注意,ini_set("session.cookie_domain",'session.com');必须放在session_start()之前;否则不会生效。

      PS:1.和这个相关的二级域名下的session共享问题解决方案,参见http://huangqiqing123.iteye.com/blog/1874073   或   http://www.cnblogs.com/linzhenjie/archive/2013/01/23/2872541.html

        2.ini_set()函数修改php.ini配置参考http://www.php.net/manual/zh/ini.list.php

  • 相关阅读:
    利用本地浏览器远程服务器上的jupyter notebook
    解决IIS服务器Web访问提示输入密码
    IIS 配置
    override new 关键字的区别
    ASP.NET的网站的设计与优化
    山东人!
    远程连接SQL Server 2000服务器的解决方案
    对软件的新认识
    一个程序员成长的六个阶段
    优秀程序员应当具备的品质
  • 原文地址:https://www.cnblogs.com/phpCHAIN/p/3146157.html
Copyright © 2020-2023  润新知