gpt4 book ai didi

php $_SESSION 未通过 login.php 文件发送

转载 作者:可可西里 更新时间:2023-11-01 13:32:10 24 4
gpt4 key购买 nike

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

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

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

有人可以帮我提示问题出在哪里吗?我还想知道使用 session 替代方案是否是一个好习惯,例如,如果用户是 logged_in()->send 数据到 mysql-> SET logged_in = 1; 如果 logout() -> 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...

...脚本继续

已修复。我无法准确解释问题所在,但我从 core/int.php 中删除了 session_start()(顺便说一下,路径没有写 'core/'),我在我的 index.php 和需要登录用户的文件中添加了 session_start()

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

最佳答案

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

重定向时会出现问题。因此,检查 login.phpindex.php 是否在开头有 session_start()

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


看到文件后:

你已经添加了这一行:

include '/core/int.php';

在所有文件中,这应该替换为:

include 'core/int.php';

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

关于php $_SESSION 未通过 login.php 文件发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13582650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com