I have created a HTML form for a user to login that checks against a database of usernames and passwords to ensure authenticity.

If it's good to go, I redirect to a new page, but if it's not I am trying to display a message on my "Login" page and allow the user to re-enter a username and password. Below is what I am using...I included echo statements to me sure that I entered these. The problem lies in the "else". The 'redirect' is the name of a hidden tag on my form that I am assigning a value to if the 'else' portion is executed.

if (isset($_SESSION) && false) {
$MM_redirectLoginSuccess = $_SESSION;
//echo "post redirect is " .$_POST;
header("Location: " . $MM_redirectLoginSuccess );
else {
$_POST = 'invalid';
echo "t";
header("Location: ". $MM_redirectLoginFailed );

Then within my HTML I say this
<?php if(isset($_POST)){ echo "<h4>HELP!</h4>"; }?>

As long as I have the 'echo' statement in the else, it displays "HELP". Why does it not do this as soon as take the echo out. BOGGLED!!!

Thanks to anyone who can help me figure this out!


11 Years
Discussion Span
Last Post by php_daemon

You have echo "t"; which causes header() not to work, thus no redirect occurs (plus warning should be issued, you'd see it if you had error reporting on).

Also, are you trying to pass $_POST to another page? That won't work, $_POST is available only in the page the form is submitted to. Use session instead.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.