php $ _SESSION没有通过login.php文件发送

mih*_*niq 7 php xampp session windows-xp

我几天前在Windows xp32上创建了我的网站.然后重新安装相同类型的Windows(专业xp 32位).

现在我的网站无法正常运行.$_SESSIONS不发送,我不知道窗户是否与此有关(因为我关闭了一些启动服务msconfig->services).我怀疑的其他事情是XAMPP.在我发现我php.ini在Apache 1000times中编辑的问题后,它没有解决问题.在谷歌,很多人抱怨常见的问题.他们说他们改变了服务器,现在没有发送会话.

我是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>
Run Code Online (Sandbox Code Playgroud)

在login.php我有这个:

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

并在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...
Run Code Online (Sandbox Code Playgroud)

...脚本继续

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

这为我解决了这个问题.实际上,这似乎是一个愚蠢的错误.我在以前的窗口中运行了网站,但我不小心将其删除了,我在墨水中提供的文件来自旧的备份,我相信这已经有效了,但事实并非如此..对不起noob帖子,谢谢你为了你的关注.

Pra*_*man 0

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

当您重定向时就会出现问题。因此,一开始就检查login.php和。index.phpsession_start()

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


看到文件后:

您添加了这一行:

include '/core/int.php';
Run Code Online (Sandbox Code Playgroud)

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

include 'core/int.php';
Run Code Online (Sandbox Code Playgroud)

这是因为,这不是一台 Linux 机器,而且,您在此处给出了相对路径或来自 的绝对路径C:\XAMPP\等。希望这可以解决问题。