gpt4 book ai didi

php - 为什么我的登录表单允许用户使用正确的用户名登录,但密码不正确? (详见)

转载 作者:行者123 更新时间:2023-11-29 03:29:46 25 4
gpt4 key购买 nike

我使用 PHP 和 MySQL 制作了一个登录表单。现在的问题是,当我输入正确的用户名和密码时,它会登录,但是当我输入正确的用户名并更正“密码+ANY_OTHER_CHARACTER”时,它仍然会登录。为什么会这样?

例如:如果数据库中存储的用户名和密码是:

Username: username1
Password: 1213456

然后,如果我在登录表单中输入这些凭据,它就会让我登录。

但如果我尝试以下凭据:

Username: username1
Password: 1213456asdfjksdj

它仍然让我登录同一个帐户。

为什么会这样?

还有一件事,它以前工作正常,但我使用了一些 seesion 变量和 session_start() 函数。我认为问题是在使用 session 之后开始的。请帮忙。

我的登录 PHP 代码是:

<?php
session_start();
if(isset($_SESSION["cur_user_sess"]) && isset($_SESSION["cur_user_pass"]))
{
header("Location: welcomehome.php");
}
?>
<?php
$a=mysqli_connect('localhost', 'root','', 'onlinequiz');
if(isset ($_REQUEST['signup']))
{
$c=$_REQUEST['uname'];
$d=$_REQUEST['email'];
$e=$_REQUEST['phone'];
$f=$_REQUEST['pass'];
$h="INSERT INTO signup(Name, Email, Phone, Password) VALUES ('$c', '$d', '$e', '$f')";
$i= mysqli_query($a,$h);
if($i)
{
header("Location: login2.php");
}
else
{
echo "error";
}
}
?>
<?php
$a=mysqli_connect('localhost','root','', 'onlinequiz');
if (isset ($_REQUEST['login']))
{
$c=$_POST['mail'];

$d=$_POST['pass'];

$e="SELECT * FROM signup WHERE Email='$c' and Password='$d'";
$f=mysqli_query($a,$e);
if(mysqli_num_rows($f)==1)
{
$_SESSION["cur_user_sess"]=$c;
$_SESSION["cur_user_pass"]=$d;
header ("Location: welcomehome.php");
}
else
{
$error2 = "Enter correct information";
}
}
?>
<?php
$mysql=mysqli_connect('localhost','root','','onlinequiz');
$currentuser=$_SESSION["cur_user_sess"];

$sql = "SELECT * FROM signup WHERE Email='$currentuser'";
$result = mysqli_query($mysql, $sql);
$row = mysqli_fetch_assoc($result);
$_SESSION["profilename"]=$row["Name"];
//$_SESSION["profilepoints"]=$row["Points"];
$_SESSION["profilephone"]=$row["Phone"];
?>

最佳答案

您是否销毁 session 或取消设置 curr_user_sesscurr_user_pass

<?php
session_destroy(); // Is Used To Destroy All Sessions

//Or

if(isset($_SESSION['curr_user_sess']))
unset($_SESSION['curr_user_sess']); //Is Used To Destroy Specified Session
if(isset($_SESSION['curr_user_pass']))
unset($_SESSION['curr_user_pass']);
?>

注销时执行此操作。如果您不这样做, session 将在您正确登录后保持设置状态,您甚至无法进入它检查您提供的电子邮件和密码的部分。

关于php - 为什么我的登录表单允许用户使用正确的用户名登录,但密码不正确? (详见),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31938469/

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