在我的登录检查页面中,即使文本正确,它也会始终转到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);并检查你的数据库相同! –