-3

Possible Duplicate:
“Warning: Cannot modify header information - headers already sent by” error
Headers already sent by PHP

I have looked at many other sites that state the problem is because of white spacing. I dont think that is the problem since I dont leave any white spacing after the end of my php script and before the begginning of my php script. Here is the full error

: Cannot modify header information - headers already sent by (output started at /admin/login.php:19) in admin/login.php on line 22

Here is my code:

       <?php
        require_once("../../includes/database.php");
        require_once("../../includes/session.php");
        require_once("../../includes/user.php");

        if($session->is_logged_in())
        {
        header("Location:index.php");
        }
        if(isset($_POST['submit']))
        {
        $username = trim($_POST['username']);
        $password = trim($_POST['password']);
        //Check Databases
        $found_user = User::authenticate($username, $password);
        $found_user->id = $found_user[0];
        if($found_user)
        {
            $session->login($found_user);
            header("Location:index.php");
        }
        else
        {
            echo "Username/password combination incorrect.";
        }
            } else { //form is not submitted
        $username = "";
        $password = "";
        }
       ?>
       <html>
           <head>
           </head>
           <body>
           <h1>Photo Gallery</h1>
           <div id="main">
           <h2>Staff Login</h2>
           <form action="login.php" method="post">
           <table>
         <tr>
                <td>Username:</td>
                <td>
                  <input type="text" name="username" maxlength="30" value="" />
                </td> 
            </tr>
            <tr>
                <td> Password:</td>
                <td>
                  <input type="password" name="password" maxlength="30" value="" />
                </td>
            </tr>
            <tr>
                <td colspan="2">
                  <input type="submit" name="submit" value"Login" />
                </td>
            </tr>
           </table>
           </form>
           </div>
           </body>
           </html>
            <?php if(isset($database)) 
        {
                $database->close_connection();
        }
           ?>
Community
  • 1
  • 1
tdelaney18
  • 459
  • 2
  • 8
  • 16

1 Answers1

-1

If you are using a header() to redirect the user, make sure you explicitly stop the script after the header() call using exit(). Otherwise the script merrily keeps going trying to output everything following.

For example:

if($session->is_logged_in())
{
    header("Location:index.php");
    exit();
}
John C
  • 8,223
  • 2
  • 36
  • 47