<? 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上
>服务器2008,但目前在7)PHP
> 5个localy托管问题存在
>对于每个人都存在问题
>浏览器
首先,有几个问题:
(至少如果这些建议都不起作用,它们至关重要)
>您使用的是哪个版本的PHP / Apache?
>你在Windows上吗? Linux?
>如果您在“生产”服务器上,您使用的是哪种托管服务?也许它有什么特别之处?
>每个人都有问题吗?
>浏览网站时是否总有问题?
>当您从其他浏览器访问该站点时它是否仍然存在?
>另一台电脑怎么样?
>如果你使用类似var_dump($_ SESSION)的东西;死;在会话中设置数据的脚本的末尾,它给出了什么?
第一个想法:如果你设置一些标题来禁用浏览器的缓存怎么办?
像这样的东西,例如:
session_start(); header("Cache-control: private");
第二个想法(至少如果你在Windows上):你试过禁用你的防病毒/防火墙吗?
是否在客户端的浏览器中正确创建了会话cookie?
如果您使用子域(或不使用):cookie的域是否正常?它的失效日期怎么样?
第三个想法:
>你说error_reporting设置为E_ALL,这很好
> display_errors怎么样?它是否设置为On以便显示错误?
> PHP / Apache的error_log中有什么有趣的东西吗?
另一个:你确定在session_start之前绝对没有任何东西进入输出吗?甚至没有白色空间?
还有一个:您确定目录/文件的权限吗?
>在目录中写入的权限意味着您可以创建新文件和/或删除旧文件.
>但是,如果我没记错,不是你可以修改它们
>实际上,您的网络服务器需要对这些文件的写访问权^^
会话目录以及创建的(空)文件的权限是什么?
我开始没有想法……运气好的话,也许其中一个会是正确的……或者帮助你找出合适的人选!
祝好运 !