PHP会话数据未被存储
我正在创建一个登录系统,但是当用户登录时,它实际上并不存储我希望它在会话中的任何数据.我甚至检查了会话的文件,它是空的.我有session_start();在所有页面上.还有什么我可能做错了.下面是两个主要页面的代码.
登录代码: <? if ($DEBUG == true) { error_reporting(E_ALL); } require "header.php"; require_once "dbinterface.php"; require_once "user.class.php"; require_once "config.inc.php"; $db = new db($DB['host'],$DB['user'],$DB['pass'],$DB['database']); $u_result = $db->run("select user_id from users where user_name = '" . $db->escape($_POST['user_name']) . "'"); if ($u_result == false) { $url = 'Location: error.php?id=8'; header($url); } if (count($u_result) < 1) { $url = 'Location: error.php?id=3'; header($url); } $user = new user($u_result[0]['user_id']); if ($user->match_password($_POST['pass']) == true) { $_SESSION['authenticated'] = true; $_SESSION['user_id'] = $u_result[0]['user_id']; $_SESSION['user'] = $user; } else { $url = 'Location: error.php?id=4'; header($url); } session_write_close(); header('Location: index.php'); ?> 包含在每个页面中的标题: <?php if (!session_start()) { $url = "Location: error.php?id=13"; header($url); } ?> 一点背景: > Windows 7(也尝试在Windows上
这里有一些建议(我真的不知道发生了什么和/或为什么;所以他们只是建议;也许会解决问题^^).
首先,有几个问题: >您使用的是哪个版本的PHP / Apache? >浏览网站时是否总有问题? >如果你使用类似var_dump($_ SESSION)的东西;死;在会话中设置数据的脚本的末尾,它给出了什么? 第一个想法:如果你设置一些标题来禁用浏览器的缓存怎么办? session_start(); header("Cache-control: private"); 第二个想法(至少如果你在Windows上):你试过禁用你的防病毒/防火墙吗? 第三个想法: >你说error_reporting设置为E_ALL,这很好 另一个:你确定在session_start之前绝对没有任何东西进入输出吗?甚至没有白色空间? 还有一个:您确定目录/文件的权限吗? >在目录中写入的权限意味着您可以创建新文件和/或删除旧文件. >但是,如果我没记错,不是你可以修改它们 >要修改文件,您还需要对文件进行写访问 >实际上,您的网络服务器需要对这些文件的写访问权^^ 会话目录以及创建的(空)文件的权限是什么? 我开始没有想法……运气好的话,也许其中一个会是正确的……或者帮助你找出合适的人选! 祝好运 ! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |