由于某种原因,这是我的代码,它总是返回密码不正确。我不确定我是否只是忘记了某个地方的括号,另外我怎样才能使它更安全,因为现在我正在使用 _post
函数。
<?php
include 'config.php';
session_start();
session_destroy();
session_start();
$UserName = $_POST['UserName'];
$PassWord = $_POST['PassWord'];
if ($UserName&&$PassWord)
{
mysql_select_db("SegmentMath") or die ("Couldn't find database sorry.");
$query = mysql_query("SELECT * FROM Users WHERE UserName='$UserName'");
$numrows = mysql_num_rows($query);
if ($numrows!=0)
{
// code to login
while ($row = mysql_fetch_assoc($query))
{
$dbUserName = $row['UserName'];
$dbPassWord = $row['PassWord'];
}
//check to see if they match!
if ($UserName==$dbUsername&&$PassWord==$dbPassWord)
{
$_SESSION['UserName']=$dbUsername;
$_SESSION['PassWord']=$dbPassWord;
echo "<p>Finished Software</p>";
}
else
{
echo "Incorrect Password";
}
}
else die("Sorry username not found!");
}
else die("Please Enter A Valid Username And Password!");
?>
所以我几乎可以肯定我正在做一些愚蠢的错误,这让我困惑了近 30 分钟。该文件只是 login.php
,所以基本上,如果用户在 login.html
页面上输入用户名和密码,它就会将该数据推送到此页面 Login .Php
.
我很困惑为什么它说密码不正确,即使登录是正确的并且在数据库中。
最佳答案
我想说,最好使用这个,我的意思是创建查找用户名
和密码
的查询
$login = mysql_query("SELECT * FROM users WHERE ID='". $UserName ."' AND PASSWORD='". md5($PassWord) ."');
$row=mysql_fetch_array($login); // fetch row
if($row!=null) // if found row
{
$_SESSION['UserName'] = $row['UserName']; // store in session
$_SESSION['PassWord'] = $row['PassWord'];
} %>
而不是
if (($UserName==$dbUsername)&&($PassWord==$dbPassWord))
{
$_SESSION['UserName']=$dbUsername;
$_SESSION['PassWord']=$dbPassWord;
echo "<p>Finished Software</p>";
}
关于php - 登录 session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13965718/