7

我在 windows xp32 和几天前创建了我的网站。然后重新安装同类型的windows(专业xp 32bit)。

现在我的网站无法正常工作。$_SESSIONS没有发送,我想知道 Windows 是否与此有关(因为我关闭了一些启动服务msconfig->services)。我怀疑的另一件事是XAMPP. 在我发现问题后,我php.ini在 Apache 中编辑了 1000 次,但并没有解决问题。在谷歌,很多人抱怨常见问题。他们说他们改变了服务器,现在没有发送会话。

我是 php 新手,不知道到底发生了什么。

有人可以帮我提供一些关于问题可能出在哪里的提示,而且我想知道使用会话替代方案是否是一种好习惯,例如,如果用户是logged_in()->send数据mysql-> SET logged_in = 1;,如果 l ogout() -> SET logged_in = 0。或者别的什么。关于这个问题的每一个信息都会有所帮助。谢谢!

这是确切的代码情况:项目链接:http ://dox.bg/files/dw?a=e2f056d0f2 我有这个登录表单:

        <form action="login.php" method="post">
            <ul>
                <li>
                    <input type="text" name="username">
                </li>
                <li>
                    <input type="password" name="password">
                </li>
                <li>
                    <input type="submit" value="login">
                </li>
                <li>
                    <a href="register.php">register</a>
                </li>
            </ul>    
        </form>

在 login.php 我有这个:

...
    else 
                    {  
                    $_SESSION['user_id'] = $login;
                    //... $_SESSION['user_id'] works here and outputs the correct data - user_id
                    header('Location: index.php');
                    exit();
...

在 int.php(它包含在index.php)中我有这个:

session_start();

print_r(session_get_cookie_params()); echo '<br>'; // outputs: Array ( [lifetime] => 0 [path] => / [domain] => [secure] => [httponly] => ) 
print_r(session_status());  echo '<br>'; // output: 2

var_dump($_SESSION); // output: array(0) { } 
print_r($_SESSION);
print_r($_SESSION['user_id']); // outputs: "Notice: Undefined index: user_id in C:\xampp\htdocs\orderfood\Core\int.php on line 10"

require 'database/connect.php';
require 'functions/general.php';
require 'functions/users.php';
require 'functions/options.php';

if(logged_in() === true)//this is ok.
{

$session_user_id = $_SESSION['user_id'];  // <-------- not working...

...脚本继续

固定的。我无法准确解释出了什么问题,但我删除session_start()core/int.php(顺便说一下,路径是在没有'core/'的情况下编写的),我session_start()在我的index.php和需要登录用户的文件中添加了。

这为我解决了这个问题。实际上,这似乎是一个愚蠢的错误。我在以前的窗口中运行了该网站,但我不小心删除了它,并且我在墨水中提供的文件来自旧备份,我相信它一直在工作,但事实并非如此.. 抱歉,新手发帖,谢谢请注意。

4

2 回答 2

0

一个解决方案是ini_set(' session.save_path','SOME WRITABLE PATH');在所有脚本文件中声明,但这会很痛苦。

于 2012-11-28T02:55:59.320 回答
0

您需要将 包含session_start()在所有文件中。此外,不要使用session_close()or session_destroy(),因为它会清除所有会话变量。

当您重定向时,问题就来了。因此,请在开始时检查两者login.phpindex.php拥有session_start()

如果您提供 PHP 文件的完整源代码,它将很容易调试。


看到文件后:

您已添加此行:

include '/core/int.php';

在所有文件中,应将其替换为:

include 'core/int.php';

这是因为,这不是一台 linux 机器,而且,你在这里给出了相对路径或绝对路径C:\XAMPP\等。希望这能解决这个问题。

于 2012-11-27T11:15:09.333 回答