我的服务器上的会话正在编写但未被阅读
使用以下代码:
<?php
session_start();
if (isset($_POST['submit'])) {
if(!isset($_SESSION['cheese'])) {
$_SESSION['cheese'] = 1;
} else {
$_SESSION['cheese']++;
}
}
?>
session_start()在页面重新加载时创建新会话,这意味着它不会启动会话。上面的代码没有显示任何值。
干酪| 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”
写它但不读它答案 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()的脚本时,它们是否都在更新?如果没有,您可能会遇到权限问题。