zoukankan      html  css  js  c++  java
  • php无法保存SESSION问题总汇

      昨天客户又过来说网站的问题,说的也都是些毛毛雨的东西,管理那么多网站,再有这么些客户的存在,本人也是累了,但当登录后台的时候突然发现后台登录不了,查看了一下验证码服务器端的session为空值,之前登录从来没有出现过这情况,一开始我也猜想是服务器环境的问题,但我还是耐着性子看了看程序代码,确实没发现什么问题,最后转向了服务器端度娘了这个问题,原来是session保存的权限问题,而且在之前的工作中也有很多关于权限的问题,看来权限对程序的影响真的是很重要啊。这次的精力让我明白了以下几点:

      1.早已经完成的网站如果中间从没动过,程序代码也可以正常查看一般不是程序问题,要么是什么东西被别人动了,比如说病毒,日常维护操作所致,黑客等,一般是环境问题,要检查环境

      2.找问题是一个步骤性的工作,应该一步一步慢慢调试,还是不能心急,要保持心态的平和

      3.不懂或不知道要多于别人沟通,确实不懂也可以问度娘(谷歌或者很好,只是本人没那种习惯,或者以后会用到的吧)

    一下是从网上别人对session的一些总结:

    由于是在windows 下的iis进行php的环境,所以很多情况下不能像lamp那么简单进行设置。由于工作原因我也遇到很多session无法保存的情况(在wamp下)。以下是相信信息的汇总,仅供参考学习。

    1,php.ini设置问题,这类情况下需要设置

        session_auto_start = on //这是自动开启session的

        在php文档中输入 phpinfo 查看是否正确的开启了session。

    2,保存session的文件夹有问题

        首先查看php.ini中的session_save_path 是否存在,并且没有被注释掉,如果存在的话 一般在widnows中默认的为c:windows mp 下,这目录默认是不允许其他用户读取的。

        解决方案

            1.设置 文件夹为 everyone 可读取 可写入 ,这样虽然可以解决问题,但是却产生了新的问题就是安全问题,因为是windows 下,可以进行注册表等其他信息的跨目录读取。

            2.重新设置 session_save_path ,设置完成以后 重启iis 看是否成功 如果不成功的话 请设置两个,因为在php.ini中为了兼容以前的版本是有两个的 一个是被注释掉的 一个是 4.0以上 一个是5.0以上的。设置完成后,设置被设置的目录为everyone 读取 写入,然后继承,其他的都不要勾取,这样就保证了保存目录的安全和系统数据的安全。

    3.和程序代码有关系。

        当看到设置的目录中有session生成的时候,但是全部都是0kb的空文件,这时候需要进行检查下代码是否有问题。

        解决方案:

        1.如果开启了session_auto的话 请关闭掉。然后在页面中上方写写入 session_start

        2.如果第一种方案无效的话,建议在session_start前面加上'@'符号,写入页面和读取页面都要加的。

    4.其他问题,

        如果以上原因还不可以进行处理的话,请检查php文档是否为当前加载的php文档,wamp加载的php.ini在apache中,关于检查当前php环境加载的php.ini的话 请关注后面的文章。

    原文地址:http://my.oschina.net/u/574397/blog/143961

  • 相关阅读:
    ECharts之柱状图 饼状图 折线图
    Vue自定义指令(directive)
    HDU 1231 最大连续子序列
    POJ 2533 Longest Ordered Subsequence
    HDU 1163 Eddy's digital Roots
    HDU 2317 Nasty Hacks
    HDU 2571 命运
    HDU 4224 Enumeration?
    HDU 1257 最少拦截系统
    HDU 2740 Root of the Problem
  • 原文地址:https://www.cnblogs.com/harxingxing/p/4682783.html
Copyright © 2011-2022 走看看