我创建了一个脚本来将用户登录到网站,但是我永远无法获得身份验证,即使使用正确的密码。其他一切正常工作。在文本框中输入用户名和密码后按下登录按钮即可激活此脚本。以下是脚本:Php登录脚本根本没有登录
<?php
session_start();
include('connection.php');
//STEP 2 Declare Variables
$Name = $_POST['username'];
$Pass = md5($_POST['password']); // Encrypt password with md5() function.
$Query = mysql_query("SELECT * FROM Users WHERE username='$Name' AND password='$Pass'");
$NumRows = mysql_num_rows($Query);
$_SESSION['username'] = $Name;
$_SESSION['password'] = $Pass;
//STEP 3 Check to See If User Entered All Of The Information
if(empty($_SESSION['username']) || empty($_SESSION['password']))
{
die("Go back and login before you visit this page!");
}
if($Name && $Pass == "")
{
die("Please enter in a name and password!");
}
if($Name == "")
{
die("Please enter your name!" . "</br>");
}
if($Pass == "")
{
die("Please enter a password!");
echo "</br>";
}
//STEP 4 Check Username And Password With The MySQL Database
if($NumRows)
{
// If The User Makes It Here Then That Means He Logged In Successfully
echo "";
$_SESSION['username']=$Database_Name;
}
else
{
die("Incorrect Username or Password!");
}
?>
我登录后,即使输入的用户名和密码正确,我也会得到“不正确的用户名或密码!”。输入的密码是md5()在数据库中的散列值。这个脚本几年前在我第一次创建它时就工作了。下面发布的是DB的屏幕截图。任何帮助将不胜感激
下面是一个用户的图片在我DB named Bob who is using an MD5 hash of the word "Password" as his Password.
这里是呼应results的照片时,他尝试登录。
您当前的代码具有SQL注入,这意味着任何人都可以读取或销毁任何数据。请阅读:[如何防止PHP中的SQL注入?](http://stackoverflow.com/q/60174/660921)您也不想使用'md5()'进行密码散列,因为它的* *不安全,可以非常容易地被黑客入侵。改用'crypt()'。另外,'mysql'扩展在PHP 7中已被弃用和删除。使用'mysqli'或PDO。 – Carpetsmoker