【发布时间】:2015-04-14 01:01:42
【问题描述】:
$_SESSION 没有保存,好像路径不可写。权限为:755,在 phpinfo(); 中表示会话已启用。
<?php
session_start();
ob_start();
if(isset($_GET["logout"])){
unset($_SESSION["userid"]);
header("Location: index.php");
die();
}
if(isset($_POST["username"]) && isset($_POST["password"])){
$_SESSION["userid"] = 1;
header("Location: index.php");
die();
}
$uid = 0;
if($_SESSION["userid"] && $_SESSION["userid"]>0){
$uid = $_SESSION["userid"];
}
if (!is_writable(session_save_path())) {
echo 'Session path "'.session_save_path().'" is not writable for PHP!';
}
echo $uid;
?>
$uid 始终为 0。
我收到Session path "" is not writable for PHP!
【问题讨论】:
-
检查您的 PHP 错误日志 -- 是否有任何关于
headers already sent的警告? -
@Barmar 不,没有:(
-
可能是您的 php.ini 会话设置不正确,它是共享服务器吗?无论如何检查 php.ini 中的 session.save_path 还检查会话目录是否可写
-
什么路径不可写?
755表示只对所有者可写,路径的所有权是什么? -
您是否尝试将 save_path 的值显式设置为您知道执行脚本的用户可写的目录,而不是仅使用默认值?
标签: php session session-variables session-cookies