为什么获胜';t运行我的Php登录代码


Why won't my Php login code run?

我正在尝试让一个小的登录页面工作并连接到MySQL数据库上的tbl_Users表。我已经尽力设置了一个代码,该代码将检查并链接在主页表单上输入的值,并将其链接到我的数据库中的表。但每当我尝试进行虚假登录或实际登录时,生成的都是一个空白页面,我不知道哪里出了问题。有人能给我指正确的方向吗。

Home_Page.php

<!DOCTYPE HTML>
<html>
<head>
<title>Please Login</title>
</head>
<body>
<form action="Login.php" method='POST'>
Username: <input type='text' name='username';><br>
Password: <input type='password' name='password'> <br>
<input type='submit' value='Log in'>
</body>
</html>

登录.php

include ('DatabaseConnect.php')
$username = $_POST['username'];
$password = $_POST['password'];
if ($username&&$password)
{
 $query = mysql_query("SELECT * FROM tbl_Users WHERE User_Name='$username'");
$numrows = mysql_num_rows($query);
if ($numrows != 0)
{

    while ($row = mysql_fetch_array($query))
    {
        $dbusername = $row ['User_Name'];
        $dbpassword = $row ['Password'];
    }
    if ($username==$dbusername&&$password==$dbpassword
    {
        echo ("Welcome");
    }
    else
        echo ("Incorrect Password");

}
else
    die("That user doesn't exist!");

}
 else
    die("Please enter a valid username & password");

?>

Tbl_Users创建代码

CREATE TABLE `tbl_Users` (  
`User_id` int(11) NOT NULL auto_increment,  `First_Name` varchar(32) NOT NULL,  
`Last_Name` varchar(32) NOT NULL,  `Email` varchar(100) NOT NULL,  `User_Name` varchar(100) NOT NULL,  
`Password` varchar(100) NOT NULL,  `User_level` int(11) NOT NULL,  `Tickets_id` int(11) NOT NULL,  
PRIMARY KEY  (`User_id`),  KEY `Tickets_id` (`Tickets_id`),  
CONSTRAINT `tbl_Users_ibfk_1` FOREIGN KEY (`Tickets_id`)
 REFERENCES `tbl_Tickets` (`Tickets_id`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1

MySQL函数从PHP 5.5开始贬值。

您需要使用新的和改进的MySQLi函数。

http://php.net/manual/en/book.mysqli.php

此外,我建议你在PHP脚本开始时检查你捕获的$_POST,因为这可以让你以后的生活更轻松,而且是一个很好的练习:

if(isset($_POST['username']))
{
    $username = $_POST['username'];
}
else{
//Redirect or echo an error message
}
if(isset($_POST['password']))
{
    $password = $_POST['password'];
}
else{
//Redirect or echo an error message
}

如果你是PHP新手,你真的应该使用一个模板或教程代码。您当前的解决方案容易受到SQL注入的攻击,并以纯文本形式存储密码,这意味着任何人都可以在大约2分钟的时间内获得所有用户的密码。在谷歌上快速搜索会发现这一点,你可能会觉得很有帮助:http://www.html-form-guide.com/php-form/php-login-form.html