在我的登錄檢查頁面中,即使文本正確,它也會始終轉到else語句。php登錄始終挑選其他
登錄頁
<form method="post" action="login.php">
<input type="text" placeholder="username" name="username"><br>
<input type="password" placeholder="password" name="password"><br>
<input type="submit" value="Submit"></form>
</body>
</html>
loginin確認頁
<?php
session_start();
//connect to database
include("db.php");
$username = $_POST["username"];
$password = $_POST["password"];
$q = mysqli_query("SELECT * FROM user WHERE username='$username' AND password='$password' ");
//row count
$numrows = mysqli_num_rows($q);
if($numrows == 1){
while($rows = mysqli_fetch_assoc($q)){
$_SESSION["username"] = $row["username"];
$_SESSION["password"] = $row["password"];}header("location:check.php");}
//always going to this else statement
else
{header("location:wrong.php");}
?>
我到底做錯了什麼?
可以確認'$ numrows'真的回來'1'? – roullie
嘗試回顯'$ username'和'$ password'並手動將其與表中的數據進行比較 – Panda
$ numrows = mysqli_num_rows($ q);基於這個你已經檢查了條件!所以這裏你的問題是$ numrows = mysqli_num_rows($ q);返回1 ??或者print_r($ _ POST);並檢查你的數據庫相同! –