Login page: PHP header erorr
Hi Folks,
I am having trouble with my phph login page. When I enter the correct username and password, I get the error message below.
Code:
Warning: Header may not contain more than a single header, new line detected. in C:\xampp\htdocs\2012\login.php on line 9
You are being redirected to your original page request!
(If your browser doesn't support this, click here)
:check:
It is pointing to line 9 which I noticed starts with header and the full code for the login page is the one below. I will appreciate if someone could sport my mistake and suggest corrections please.
Code:
<?php
session_start();
$_SESSION['logged'] = 0;
if (isset($_POST['submit'])) {
if ($_POST['username'] == "nations" &&
$_POST['password'] == "united") {
$_SESSION['logged'] = 1;
header("Refresh: 5; URL=" . $_POST['redirect'] . "");
echo "You are being redirected to your original page request!<br>";
echo "(If your browser doesn't support this, " .
"<a href=\"" . $_POST['redirect']. "\">click here</a>)";
} else {
?>
<html>
<head>
<title>Working with PHP and MySQL</title>
</head>
<body>
<p>
Invalid Username and/or Password<br><br>
<form action="login.php" method="post">
<input type="hidden" name="redirect"
value="<?php echo $_POST['redirect']; ?>">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br><br>
<input type="submit" name="submit" value="Login">
</form>
</p>
<?php
}
} else {
?>
<html>
<head>
<title>Working with PHP and MySQL</title>
</head>
<body>
<p>
You must be logged in to view this page<br><br>
<?
if (isset($_GET['redirect'])) {
$redirect = $_GET['redirect'];
} else {
$redirect = "index.php";
}
?>
<form action="login.php" method="post">
<input type="hidden" name="redirect"
value="<?php echo $_GET['redirect']; ?>">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br><br>
<input type="submit" name="submit" value="Login">
</form>
</p>
<?php
}
?>
</body>
</html>
Thanks in advance.
Re: Login page: PHP header erorr
You cannot have anything being output to the page before you handle the header.
Right now, it looks like you have a space before your <?php tag.
Re: Login page: PHP header erorr
not only that, but you have output (echo statements) before your opening htrml tags... or anything else...
-tg
Re: Login page: PHP header erorr
Thanks everyone. I have fixed the error by removing the space and following your suggestions. Very many thanks. Menre