我试图帮助我的朋友解决PHP和MySQL的问题。自从我完成PHP / MySQL以来已经有3-4个月了,所以我需要一些帮助来确定问题。以下代码产生错误,通知用户localhost已重定向太多次:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Login
</title>
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<?php
require('db.php');
session_start();
// If form submitted, insert values into the database.
if (isset($_POST['username'])){
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$username = mysql_real_escape_string($username);
$password = stripslashes($password);
$password = mysql_real_escape_string($password);
//Checking is user existing in the database or not
$md5pass = md5($passowrd);
$query = "SELECT * FROM `users` WHERE username='$username' and password='$md5pass'";
$result = mysql_query($query) or die(mysql_error());
$rows = mysql_num_rows($result);
if($rows==1){
$_SESSION['username'] = $username;
header("Location: index.php"); // Redirect user to index.php
}else{
echo "<div class='form'><h3>Username/password is incorrect.</h3><br/>Click here to <a href='login.php'>Login</a></div>";
}
}else{
?>
<div class="form">
<h1>Log In
</h1>
<form action="" method="post" name="login">
<input type="text" name="username" placeholder="Username" required />
<input type="password" name="password" placeholder="Password" required />
<input name="submit" type="submit" value="Login" />
</form>
<p>Not registered yet?
<a href='registration.php'>Register Here
</a>
</p>
</div>
<?php } ?>
</body>
</html>
是的,我确实意识到了有关代码的安全问题。我会告诉我的朋友这些问题,但是现在,我只想弄清楚为什么代码重定向很多次,而它应该只重定向一次。
我怀疑它与多个输出之后使用header()
函数或者php部分未正确关闭这一事实有关。
答案 0 :(得分:0)
if
中有一个index.php
语句,其中包含一个header()
函数,该函数返回登录页面。它基本上是一个循环。