我有一个login.php
,register.php
页面。
register
页面工作正常,但我的login
页面存在问题。
当我成功登录时,它应该将我重定向到一个名为member.php
的页面,而只是停留在同一页面上而不是在哪里。
以下是login.php
页面的代码,我认为可能会出现问题我已尝试将header("Location: member.php");
替换为echo("Success")
并且有效:
的login.php
<!doctype html>
<html>
<body>
<p><a href="register.php">Register</a> | <a href="login.php">Login</a></p>
<h3>Login Form</h3>
<form action="" method="POST">
Username: <input type="text" name="user"><br />
Password: <input type="password" name="pass"><br />
<input type="submit" value="Login" name="submit" />
</form>
<?php
if(isset($_POST["submit"])) {
if(!empty($_POST['user']) && !empty($_POST['pass'])) {
$user=$_POST['user'];
$pass=$_POST['pass'];
$con=mysql_connect('localhost:8889','root','root') or die(mysql_error());
mysql_select_db('user_registration') or die("cannot select DB");
$query=mysql_query("SELECT * FROM login WHERE username='".$user."' AND password='".$pass."'");
$numrows=mysql_num_rows($query);
if($numrows!=0) {
while($row=mysql_fetch_assoc($query)) {
$dbusername=$row['username'];
$dbpassword=$row['password'];
}
if($user == $dbusername && $pass == $dbpassword) {
session_start();
$_SESSION['sess_user']=$user;
header("Location: member.php");
}
} else {
echo "Invalid username or password!";
}
} else {
echo "All fields are required!";
}
}
?>
</body>
</html>
member.php
<?php
session_start();
if(!isset($_SESSION["sess_user"])) {
header("location:login.php");
} else {
?>
<!doctype html>
<html>
<body>
<h2>Welcome, <?=$_SESSION['sess_user'];?>! <a href="logout.php">Logout</a></h2>
</body>
</html>
<?php } ?>
数据库:http://i.stack.imgur.com/Eyfud.png
答案 0 :(得分:1)
在任何html之后,您无法使用header(...)
设置标头。您可以使用输出缓冲解决此问题。尝试将以下内容添加到login.php的顶部(即在您的doctype声明之前)
<?php
ob_start();
?>
答案 1 :(得分:0)
您必须在任何其他输出之前发送header("Location: member.php")
。所以首先检查是否必须重定向用户(如果是,则执行此操作),然后输出<!doctype html>
上的所有内容。
答案 2 :(得分:0)
你可以试试这个。
if($user == $dbusername && $pass == $dbpassword)
{
session_start();
$_SESSION['sess_user']=$user;
echo "<script language='javascript'> window.location='member.php'; </script>";
}
if(!isset($_SESSION["sess_user"])) {
echo "<script language='javascript'> window.location='login.php'; </script>";
}