PHP Login Script Error Warning: Cannot modify header information - headers already...

cjdb0297

New Member
Messages
2
Reaction score
0
Points
0
SOLVED - PHP Login Script Error- SOLVED

Hi guys,

PHP:
<?php
ob_start();
$host="localhost"; // Host name
$sqlusername="theSQLLoginName"; // Mysql username
$sqlpassword="theSQLLoginPassword"; // Mysql password
$db_name="theLoginDatabase"; // Database name
$tbl_name="theLoginTable"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$sqlusername", "$sqlpassword")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");


 //Checks if there is a login cookie

 if(isset($_COOKIE['ID_my_site']))


 //if there is, it logs you in and directes you to the members page

 { 
     $username = $_COOKIE['ID_my_site']; 

     $pass = $_COOKIE['Key_my_site'];

          $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());

     while($info = mysql_fetch_array( $check ))     

         {

         if ($pass != $info['password']) 

             {

                          }

         else

             {

             header("Location: login_success.php");



             }

         }

 }


 //if the login form is submitted 

 if (isset($_POST['submit'])) { // if form has been submitted



 // makes sure they filled it in

     if(!$_POST['username'] | !$_POST['pass']) {

         die('You did not fill in a required field.');

     }

     // checks it against the database



     if (!get_magic_quotes_gpc()) {

         $_POST['email'] = addslashes($_POST['email']);

     }

     $check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());



 //Gives error if user dosen't exist

 $check2 = mysql_num_rows($check);

 if ($check2 == 0) {

         die('That user does not exist in our database. <a href=add.php>Click Here to Register</a>');

                 }

 while($info = mysql_fetch_array( $check ))     

 {

 $_POST['pass'] = stripslashes($_POST['pass']);

     $info['password'] = stripslashes($info['password']);

     $_POST['pass'] = md5($_POST['pass']);



 //gives error if the password is wrong

     if ($_POST['pass'] != $info['password']) {

         die('Incorrect password, please try again.');

     }
    else 

 { 

 
 // if login is ok then we add a cookie 

      $_POST['username'] = stripslashes($_POST['username']); 

      $hour = time() + 3600; 

 setcookie(ID_my_site, $_POST['username'], $hour); 

 setcookie(Key_my_site, $_POST['pass'], $hour);     

 

 //then redirect them to the members area 

 header("Location: login_success.php"); 

 } 

 } 

 } 

 else 

{     

 

 // if they are not logged in 

 ?><form action="<?php $_SERVER['PHP_SELF']?>" method="post"> 

 <table border="0"> 

 <tr><td colspan=2><h1>Login</h1></td></tr> 

 <tr><td>Username:</td><td> 

 <input type="text" name="username" maxlength="40"> 

 </td></tr> 

 <tr><td>Password:</td><td> 

 <input type="password" name="pass" maxlength="50"> 

 </td></tr> 

 <tr><td colspan="2" align="right"> 

 <input type="submit" name="submit" value="Login"> 

 </td></tr> 

 </table> 

 </form><?php 

 } 

 
ob_flush();
 ?>
OK, so the query goes through, but I get the following three errors:

Warning: Cannot modify header information - headers already sent by (output started at /home/domain/public_html/checklogin.php:1) in /home/domain/public_html/checklogin.php on line 121

Warning: Cannot modify header information - headers already sent by (output started at /home/domain/public_html/checklogin.php:1) in /home/domain/public_html/checklogin.php on line 123

Warning: Cannot modify header information - headers already sent by (output started at /home/domain/public_html/checklogin.php:1) in /home/domain/public_html/checklogin.php on line 129

Problem solved. After more playing around with my code, I solved the problem. Thanks again guys =]
 
Last edited:

descalzo

Grim Squeaker
Community Support
Messages
9,372
Reaction score
326
Points
83
Re: PHP Login Script Error Warning: Cannot modify header information - headers alread

Read what the error messages say.
Three times it says "Cannot modify header information - headers already sent by" .
Look at the line numbers (put in a text editor with line numbering if you have to). Those three lines are where you are setting cookies or a header.
It is telling you you cannot do that since you already sent headers (again, read the message) on line 1 of the same script.

In a PHP script, as soon as you send anything, even a blank line, the systems sends the HTTP headers. So the error messages are telling you that you have already sent some text out. Even if it is a blank line. Even if it is a single space.
 
Top