我在教自己的PHP所以这可能是愚蠢的东西我还不知道,但为什么我的重定向不工作...PHP重定向无法成功登录
我想要做到这一点:
header("Location: members.php?view=$user"); exit;
它没有做任何事情,但是当我把在模具声明的链接在成功登录
die("You are now logged in. Please <a href='members.php?view=$user'>click here</a> to continue.");
我可以点击该链接,它工作正常。
全码
<?php //login.php
include_once 'header.php';
echo "<div class='main'><h3>Please enter your details to log in</h3>";
$error = $user = $pass = "";
if (isset($_POST['user'])) {
$user = sanitizeString($_POST['user']);
$pass = sanitizeString($_POST['pass']);
if ($user == "" || $pass == "") {
$error = "Not all fields were entered<br />";
}
else {
$query = "SELECT user,pass FROM members WHERE user='$user' AND pass='$pass'";
if (mysql_num_rows(queryMysql($query)) == 0) {
$error = "<span class='error'>Username/Password invalid</span><br /><br />";
}
else {
$_SESSION['user'] = $user;
$_SESSION['pass'] = $pass;
header("Location: members.php?view=$user"); exit;
}
}
}
echo <<<_END
<form method='post' action='login.php'>$error
<span class='fieldname'>Username</span><input type='text' maxlength='16' name='user' value='$user' /><br />
<span class='fieldname'>Password</span><input type='password' maxlength='16' name='pass' value='$pass' />
_END;
?>
<br />
<span class='fieldname'> </span>
<input type='submit' value='Login' />
</form><br /></div></body></html>
<?php //header.php
session_start();
echo "<!DOCTYPE html>\n<html><head><script src='js/osc.js'></script>";
include 'functions.php';
$userstr = ' (Guest)';
if (isset($_SESSION['user'])) {
$user = $_SESSION['user'];
$loggedin = TRUE;
$userstr = " ($user)";
}
else {
$loggedin = FALSE;
}
echo "<title>$appname$userstr</title><link href='css/main.css' rel='stylesheet' type='text/css' />" .
"</head><body><div class='$appname'>$appname$userstr</div>";
if ($loggedin) {
echo "<br /><ul class='menu'>" .
"<li><a href='members.php?view=$user'>Home</a></li>" .
"<li><a href='members.php'>Members</a></li>" .
"<li><a href='friends.php'>Friends</a></li>" .
"<li><a href='messages.php'>Messages</a></li>" .
"<li><a href='profile'>Edit Profile</a></li>" .
"<li><a href='logout.php'>Log Out</a></li></ul><br />";
}
else {
echo ("<br /><ul class='menu'>" .
"<li><a href='index.php'>Home</a></li>" .
"<li><a href='signup.php'>Sign Up</a></li>" .
"<li><a href='login.php'>Log In</a></li></ul><br />" .
"<span class='info'>⇎ You must be logged in to view this page.</span><br /><br />"
);
}
?>
我试着在上面除去第一echo
,还有$error
消息。就像我说的,我试图改进我从this O'Reilly book中挑选的代码,所以我非常感谢任何帮助,指导和批评等。
在您调用'header()'之前显示代码 –
可能的[如何修复]已经发送的头文件“PHP中的错误”的副本(http://stackoverflow.com/questions/8028957/how-to-fix -headers-already-sent-error-in-php) –
我打赌一百万美元在标题调用之前有输出 – 2014-03-24 19:31:38