gpt4 book ai didi

php - 这是 session 问题吗?

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:33 25 4
gpt4 key购买 nike

我的这段代码在开发机器上运行良好,但是当移植到生产环境时,用户将收到错误的警报详细信息,尽管它是正确的。

我的猜测是这是 PHP 的 session 问题。但是,我看到 session 文件保存到服务器上的/tmp 中。我是否遗漏了一些明显的导致此问题的原因?

代码引用如下。

session_start();
include_once 'dbconnect.php';

if(isset($_SESSION['user'])!="")
{
header("Location: home.php");
}
if(isset($_POST['btn-login']))
{
$email = mysql_real_escape_string($_POST['email']);
$upass = mysql_real_escape_string($_POST['pass']);
$res=mysql_query("SELECT * FROM `USERS` WHERE `EMAIL` = '$email'");
$row=mysql_fetch_array($res);
if($row['PASSWORD']==md5($upass))
{
$_SESSION['user'] = $row['ID'];
header("Location: home.php");
}
else
{
?>
<script>alert('wrong details');</script>
<?php
}

}

最佳答案

试试这个。我做了以下更改:

  • 修复了 $_SESSION['user']isset() 测试。您不应该将其与 "" 进行比较。也许您真正想要的是 if(!empty($_SESSION['user'])

  • 使用 elseif,以便在未设置 session 变量时仅检查电子邮件和密码。

session_start();
include_once 'dbconnect.php';

if(isset($_SESSION['user']))
{
header("Location: home.php");
}
elseif(isset($_POST['btn-login']))
{
$email = mysql_real_escape_string($_POST['email']);
$upass = mysql_real_escape_string($_POST['pass']);
$res=mysql_query("SELECT * FROM `USERS` WHERE `EMAIL` = '$email'");
$row=mysql_fetch_array($res);
if($row['PASSWORD']==md5($upass))
{
$_SESSION['user'] = $row['ID'];
header("Location: home.php");
}
else
{
?>
<script>alert('wrong details');</script>
<?php
}

}

关于php - 这是 session 问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34420812/

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