为什么我的Php登录代码不会运行?

时间:2016-03-30 15:58:35

标签: php mysql

我正在尝试使用一个小的登录页面并连接到我的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>

的login.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

2 个答案:

答案 0 :(得分:0)

自PHP 5.5以来,MySQL函数已被折旧。

您需要使用新的和改进的MySQL i 功能。

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
}

答案 1 :(得分:0)

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

相关问题