所以我不能解決這個問題。它一直說密碼或電子郵件/用戶名是錯誤的,我不知道下一步該怎麼做。似乎一切都很好。登錄代碼不起作用
如果有人能幫助我,這將是很好的。
代碼:
<?php
include 'config.php';
include 'crypt.php';
$username = $_POST['loginName'];
$email = $_POST['loginName'];
$password = crypt($_POST['loginPassword'], $salt);
$stmt = $conn->prepare('SELECT * FROM users WHERE (username = ? or email = ?) AND password = ?');
$stmt->bind_param('sss' , $username, $email, $password);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
$count = mysqli_num_rows($result);
?>
<html>
<head>
<title>Market</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<div id="content">
<?php
if ($count > 0) {
session_start();
$_SESSION['logged'] = true;
$_SESSION['username'] = $row['username'];
header("Refresh: 2.5; URL= index.php");
?>
<h1 align="center">Nice to see you again <?php echo $_SESSION['username'] ?>! </h1>
<?php
}
else {
?>
<h1 align="center"> Password or email/username is wrong! </h1>
<?php
header("Refresh: 2.5; URL= logreg.php");
}
?>
</div>
</body>
</html>
你不能使用' header()'生成輸出後。 – Ben
你應該檢查是否已經發出了請求,並確保'$ password'等於表中的密碼。另外,'crypt()'可以在不同的平臺上以不同的方式返回。更不用說你的數據庫具有區分大小寫的排序規則了。 – frz3993
...除非啓用輸出緩衝,但通常不會發生這種情況 –