我想學習PHP和MySQL,我想做一個登錄頁面,它將檢查數據庫中的信息,如果信息正確,將讓用戶通過。PHP登錄檢查用戶名和密碼代碼不起作用
我有下面的PHP代碼:
if(isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username ='".$username."' AND password='".$password."' LIMIT 1";
$res = mysqli_query($sql);
if(mysqli_num_rows($res) == 1) {
echo "You have successfully logged in.";
} else {
echo "Invalid login information.";
}
} else {
echo "Not working.";
}
在我的主要文件,我有2個包含。一個是連接,另一個是這個php文件。在同一個文件(主文件)中,我有一個包含3個輸入字段的表單:用戶名,密碼和提交類型。
問題是,當我包含上述的PHP文件,頁面顯示空白,我什麼都沒有回來,甚至沒有「不工作」的字符串。這是爲什麼?我的語法有什麼不好?
UPDATE:
我的主文件的代碼:
<?php
include 'includes/connection.php';
include 'includes/login.php';
?>
<html>
<head>
<title>Login</title>
<link rel="stylesheet" href="css/login_page.css">
</head>
<body>
<div class="flex">
<div class="container">
<h3>Login to the site...</h3>
<p>The awesome site we created!</p>
<form method="post" action="login.php">
<input type="text" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password"><br /><br />
<input type="submit" name="submit" class="btn-submit" value="Login">
</form>
</div>
</div>
</body>
</html>
連接PHP文件:
<?php
$server = "localhost";
$user = "Flopet17";
$pass = "1234";
$db = "listing";
$conn = new mysqli($server, $user, $pass);
mysqli_select_db($db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connection succeed";
?>
[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – esqew 2014-11-03 17:44:22
另外,如果沒有看到這個腳本的POST文件,就很難回答這個問題。 – esqew 2014-11-03 17:44:54
要發佈什麼內容?網址是否正確?你的表單是什麼樣的?呃,哦,你很容易[sql -injections](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。 – Jonast92 2014-11-03 17:46:15