Header already sent.

Discussion in 'Free Hosting' started by oracle, Nov 20, 2007.

Thread Status:
Not open for further replies.
  1. oracle

    oracle New Member

    Some one kindly help me plz:

    I am consistently getting the following error, Can anyone please help me find where the problem is:

    Warning: Cannot modify header information - headers already sent by (output started at .......php:4) in ..................php on line 68

    I went through a few forums where they stated that the above error occurs due to extra line or space in the file. Well I have checked as far as possible for any additional space or line, but still I am getting the above error.

    Kindly help me through.
  2. Slothie

    Slothie New Member

    Code please :)
  3. oracle

    oracle New Member

    Well the code is working well when I am testing them on my local machine's IIS Server. I have Windows XP OS. But when I put them on my webspace, they start showing error. Here are the lines of code which it point to.

    Login.php
    -------------
    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: members.php");
    }

    It points to the two setcookie commands and the redirect command.

    Members.php
    -----------------
    }
    else {
    //if the cookie does not exist, they are taken to the login screen
    header("Location: login.php");
    }
    ?>

    Here it points to the redirect command.

    index.php
    ------------
    <?php
    include_once("googleanalyticscode.php");
    header("Location: login.php");
    ?>

    Here again.

    Kindly help me through.
  4. Slothie

    Slothie New Member

    PHP:
    include_once("googleanalyticscode.php"); 
    This outputs something already.


    Anyway you could try this. Prepend
    PHP:
    ob_start();
    and append
    PHP:
    ob_flush();
    to all your php files that get this error.


    Your local php.ini probably has output buffering on by default.
  5. oracle

    oracle New Member

    Thanx for the quick Response, however as I put those two commands something else stops working. I will copy and paste my original login.php file, if possible just point me whr do u want me to put those commands:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <?php
    // set your infomation.
    $dbhost='****';
    $dbusername='****';
    $dbuserpass='****';
    $dbname='****';
    // Connects to your Database
    mysql_connect($dbhost,$dbusername,$dbuserpass) or die(mysql_error());
    mysql_select_db($dbname) or die(mysql_error());
    //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: members.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=index.php>Click Here to Register</a>');
    }
    session_start();
    if(($_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) ) {
    // Insert you code for processing the form here, e.g emailing the submission, entering it into a database.
    unset($_SESSION['security_code']);
    } else {
    // Insert your code for showing an error message here
    die("Wrong Code");
    }
    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: members.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="60">
    </td></tr>
    <tr><td>Password:</td><td>
    <input type="password" name="pass" maxlength="10">
    </td></tr>
    <tr><td>Enter Code:</td><td>
    <input type="text" name="security_code" id="security_code" maxlength="10">
    </td></tr>
    <tr><td colspan="2" align="left">
    <img src="CaptchaSecurityImages.php?width=100&height=30&characters=5" alt="captcha">
    </td></tr>
    <tr><td colspan="2" align="right">
    <input type="submit" name="submit" value="Login">
    </td></tr>
    <tr><td colspan="2" align="left">
    <a href=registration.php> New User Sign in Here </a>
    </td></tr>
    </table>
    </form>
    <?php
    }
    ?>



    More specifically Captcha image is not being generated after enetering the ob_start() and ob_flush command.

    Kindly have a look at the code and lemme know....
    Thanx in advance
  6. Slothie

    Slothie New Member

    PHP:
    <?php
    ob_start
    ();
    // set your infomation.
    $dbhost='****';
    $dbusername='****';
    $dbuserpass='****';
    $dbname='****';
    // Connects to your Database
    mysql_connect($dbhost,$dbusername,$dbuserpass) or die(mysql_error());
    mysql_select_db($dbname) or die(mysql_error());
    //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: members.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=index.php>Click Here to Register</a>');
    }
    session_start();
    if((
    $_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) ) {
    // Insert you code for processing the form here, e.g emailing the submission, entering it into a database.
    unset($_SESSION['security_code']);
    } else {
    // Insert your code for showing an error message here
    die("Wrong Code");
    }
    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: members.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="60">
    </td></tr>
    <tr><td>Password:</td><td>
    <input type="password" name="pass" maxlength="10">
    </td></tr>
    <tr><td>Enter Code:</td><td>
    <input type="text" name="security_code" id="security_code" maxlength="10">
    </td></tr>
    <tr><td colspan="2" align="left">
    <img src="CaptchaSecurityImages.php?width=100&height=30 &characters=5" alt="captcha">
    </td></tr>
    <tr><td colspan="2" align="right">
    <input type="submit" name="submit" value="Login">
    </td></tr>
    <tr><td colspan="2" align="left">
    <a href=registration.php> New User Sign in Here </a>
    </td></tr>
    </table>
    </form>
    <?php
    }
    ob_flush();
    ?> 
    Edit:
    By the way,

    Code:
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    is already considered output to browser :)
    Last edited: Nov 20, 2007
  7. oracle

    oracle New Member

    Lovely, thanx a lot man. It did really worked.

    Thanx a lot.

    I will try out the same thing to the other files too.
    Edit:
    But some thing is happening strange here.

    I changed the things in index.php to look like...

    <?php
    ob_start();
    include_once("googleanalyticscode.php");
    header("Location: login.php");
    ob_flush();
    ?>

    It comes to login.php but the captcha image is not being generated, however when i initially opened the the url /login.php straight, it worked.

    Any comments.?

    Edit:
    Well it worked the first time I made the changes....now again it is continuing with the same problem.
    Last edited: Nov 20, 2007
  8. Brandon

    Brandon Former Senior Account Rep Community Support

    Hello,

    It seems your problem has been solved, if you have any more questions then feel free to ask them.
Thread Status:
Not open for further replies.

Share This Page