会话写但不在linux服务器上读取

时间:2016-03-02 13:52:16

标签: php

我的服务器上的会话正在编写但未被阅读

使用以下代码:

<?php
session_start();
if (isset($_POST['submit'])) {
    if(!isset($_SESSION['cheese'])) {
        $_SESSION['cheese'] = 1;
    } else {
        $_SESSION['cheese']++;
    }
}
?>

session_start()在页面重新加载时创建新会话,这意味着它不会启动会话。上面的代码没有显示任何值。

php ini文件对于会话来说是这样的:enter image description here

干酪| I:1; &lt; - 这是什么存储在会话中

EDIT *****************

继续建议检查 var_dump($ _ COOKIE,$ _SESSION,$ _REQUEST, FILE LINE ); 每页显示以下内容

array(0){} array(1){[“test”] =&gt; string(2)“hi”} array(0){} string(36)“/ data / vhosts /slacatalogue /sesh1.php5”

Array()array(0){} array(0){} array(0){} string(36)“/ data / vhosts /slacatalogue / theseh2.php6”

写它但不读它

2 个答案:

答案 0 :(得分:0)

如果session_save_path()是可写的,请检查它。

if (!is_writable(session_save_path())) {
    echo 'Session path "'.session_save_path().'" is not writable for PHP!'; 
}

答案 1 :(得分:0)

  

我的服务器上的会话正在编写

你怎么知道的?你检查过文件是否被修改了?你检查了内容吗?

最可能的原因是您没有检查错误日志,或者您的错误报告配置错误且PHP unable to send a session cookie为浏览器。从响应标题中可以看出这一点。

如果您的服务器正在将会话cookie发送到浏览器,那么接下来要检查的是浏览器是否将其发送回请求标头 - 大多数浏览器都可以选择禁用cookie。

如果cookie工作正常,那么看一下这些文件 - 每次请求落在带有session_start()的脚本时,它们是否都在更新?如果没有,您可能会遇到权限问题。