原文地址:http://www.hjaa.net/?p=1149
php启动session失败错误原因应该是:php.ini中,有关session部分的设置存在错误,引发session cookies无法发送和保持。
排查步骤:
1、将以下文字保存为phpinfo.php,并上传到服务器要可以访问,比如本站http://www.hjaa.net/phpinfo.php
<?php
phpinfo();
?>
重点关注session部分
2、session.cookie_domain设置了A域名,即session.cookie_domain = A域名结果导致session cookies在B域名失效。
解决办法1:将php.ini中的session.cookie_domain设置为空,即:session.cookie_domain =
解决办法2:session.cookie_domain =设置成你使用的域名
3、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 = /
4、php.ini中,将session.cookie_path和session.save_path两者搞混,以为session.cookie_path是表示session临时文件存储的路径。但实际上session.cookie_path是表示session生效的网站域,和服务器的文件权限无关;session.save_path才是设置session临时文件存储的路径。比如将session.cookie_path设置为:session.cookie_path = C:/WINDOWS/TEMP从而引发故障。
5、session.save_path设置的目录没有写权限;或者设置不正确(比如设置的文件夹根本不存在)。请注意:如果为空,则表示使用默认的系统临时文件夹路径。windows一般为“%SystemRoot%\TEMP”,unix一般为“/tmp”
解决办法:
(1)、如果session.save_path不留空,请确认该设置值对应的确实是一个文件夹、并且该文件夹存在。如果确实不知道如何设置,请注释此设置、或者改为空值,让php使用默认设置。
(2)、在对应目录中,给予相应用户的写权限比如对于IIS,应给予Internet来宾账户的写权限。
6、当session.auto_start = on时,执行 session_start() 将产生新的 session_idsession.auto_start = on 的优点在于,任何时候都不会因忘记执行 session_start() 或 session_start() 在程序里的位置不对,而导致错误缺点在于,如果你使用的是第三方代码,则必须删去其中的全部 session_start() 。否则将不能得到正确的结果
解决办法:
(1)session.auto_start = Off
(2)把程序中的session_start();去掉
分享到:
相关推荐
网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码。 大概思路就是借助小程序本地储存+网络请求的header可读可写来实现类似浏览器的cookies保存session功能。 直接上代码 ...
IFrame中Session丢失的解决办法
IE的cookie机制导致的session问题及解决办法.docIE的cookie机制导致的session问题及解决办法.docIE的cookie机制导致的session问题及解决办法.docIE的cookie机制导致的session问题及解决办法.doc
关于PHP的session的基本使用 认识session的工作原理 1启动session 2读写session的变量 3删除session变量 4session在用户登录中的应用
本文较为详细的分析了php提示Failed to write session data错误的解决方法。分享给大家供大家参考。具体方法如下: 一、问题: 提示信息:Warning: Failed to write session data (files).Please verify that the ...
在php中设置session有很多方面包有给session设置值或直接设置过期、失效和有效期,下面小编来给大家给各位朋友介绍怎么使用。 我们先来看看在php.ini中session怎么设置,打开 php.ini,查找Session设置部分中以下一...
PHP session跨服务器跨域解决方案 基于memcahe的session方法重写
session跨服务器跨域解决方案 基于memcahe的session方法重写
一个服务器上搭建了多个tomcat或者weblogic,端口不一样,同时启动访问时session丢失。如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,...
IE8串session的解决方法
php session登录。附数据表执行SQL,HTML前端代码,PHP代码。
php5的session详解.pdf php5 的session详解其一:什么是session?...php5 的session 详解之二:有两种方法传递 一个会话ID: php5 的session 详解之三:session安全 php5 的session 详解之四:……
Session原理、Session丢失的原因、Session存储的机制、Session丢失的解决方案
tomcat集群session共享问题解决方案,以及应用到的相关资料
asp.net 修改/删除站内目录操作后Session丢失问题
Session丢失原因和解决方案.Session原理
购物车分布式Session处理方案,一个用户的分布式的购物车在集群分布式的情况下怎么处理解决Session共享的问题
主要介绍了php验证session无效的解决方法,涉及对session缓存目录的判断与修改,是进行session操作经常会遇到的问题,需要的朋友可以参考下