Home  >  Article  >  Backend Development  >  What should I do if the php session cannot be saved?

What should I do if the php session cannot be saved?

藏色散人
藏色散人Original
2020-08-21 10:18:372880browse

php session保存不了是因为服务器配置发生改变,其解决办法就是自定义session的保存路径,关键代码如“$savePath=ROOT_PATH."/tmp/"; session_save_path($savePath);”。

What should I do if the php session cannot be saved?

推荐:《PHP视频教程》 

PHP空间出现session无法保存问题的解决办法

今天突然发现,一个运行9个月的PHP万网Linux空间出现验证码无法通过,会员无法登陆,后台也无法登陆的问题,因为这几个功能一直运行很好,而且服务器也是国内最好的万网,页面访问很正常,所以感到非常的奇怪。

经过方维技术部检测,是session无法保存的问题,显示错误语句是session_start();    详细错误信息如下:    

open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/www/)

是空间保存session的默认路径/tmp没有了权限,因为如果默认不设置session保存路径, session是保存在网站根目录tmp里的,出现这个问题的原因应该是万网服务器配置改变,去掉了tmp的访问或修改权限,所以导致session读取和保存出错。

所以出现这个问题的原因是万网服务器配置改变,解决办法是自定义session的保存路径,关键代码如下:    

define('ROOT_PATH', str_replace("\\", '/', substr(dirname(__FILE__), 0, -9)));    
$savePath=ROOT_PATH."/tmp/";
//把session保存自己网站的跟目录,这样就没有目录限制了    
session_save_path($savePath);    
session_start();

The above is the detailed content of What should I do if the php session cannot be saved?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn