Cannot modify header information - headers already sent by

Discussion in 'PHP' started by abosirage, Nov 21, 2010.

  1. abosirage

    abosirage Member

    Joined:
    Jul 29, 2010
    Messages:
    34
    Likes Received:
    0
    Trophy Points:
    6
    Occupation:
    IT
    Location:
    Tripoli-Libya
    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 a moderator: Nov 22, 2010
  2. shabbir

    shabbir Administrator Staff Member

    Joined:
    Jul 12, 2004
    Messages:
    15,336
    Likes Received:
    377
    Trophy Points:
    83
    Isnt the warning self explanatory.
     
  3. dannerr

    dannerr New Member

    Joined:
    Nov 29, 2010
    Messages:
    12
    Likes Received:
    0
    Trophy Points:
    0
    Occupation:
    none
    Location:
    none
    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.
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice