Cannot modify header information - headers already sent by

abosirage's Avatar, Join Date: Jul 2010
Go4Expert Member
hi every body
I have problem in my login page my php code :

Code:
<?php 
 // Connects to your Database 
include ('config.php');
//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: data/viewdb.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('عفواً انت لم تقم بتعيئة البيانات المطلوبة للدخول');
}
// checks it against the database
if (!get_magic_quotes_gpc()) {
         $_POST['username'] = addslashes($_POST['username']);
     }
     $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('عفواً انت غير مسجل معنا <a href=add.php>ادخل هنا للتسجيل</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('خطأ في كلمة المرور, حاول مرة اخرى');
     }
 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 : data/viewdb.php"); 
 } 
 } 
 } 
 else 
 {     
 
 // if they are not logged in 
?> 
 <form action="<?php echo $_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 
 } 
  ?>
when user insert username & password should reach viewdb.php page but in followin error appear :
Warning: Cannot modify header information - headers already sent by (output started at /home/umma/public_html/db/config.php:5) in /home/umma/public_html/db/login.php on line 57

Warning: Cannot modify header information - headers already sent by (output started at /home/umma/public_html/db/config.php:5) in /home/umma/public_html/db/login.php on line 58

Warning: Cannot modify header information - headers already sent by (output started at /home/umma/public_html/db/config.php:5) in /home/umma/public_html/db/login.php on line 61

help me to solve it with my best regards

Last edited by shabbir; 22Nov2010 at 09:01.. Reason: Code blocks
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Isnt the warning self explanatory.
dannerr's Avatar, Join Date: Nov 2010
Go4Expert Member
You are echoing or displaying some HTML somewhere before you send your header()s. If you eve have a space or blank link before <?php this will cause it to send headers as HTML.