crochk Posted August 22, 2008 Share Posted August 22, 2008 I am trying to use About.com's login (http://php.about.com/od/finishedphp1/ss/php_login_code.htm) script on one of my sites. I have the registration page working, but when I try to log in and set the cookies, I get this error: Warning: Cannot modify header information - headers already sent by (output started at /www/110mb.com/c/h/a/t/n/o/t/e/chatnotes/htdocs/login/login2.php:3) in /www/110mb.com/c/h/a/t/n/o/t/e/chatnotes/htdocs/login/login2.php on line 76 Warning: Cannot modify header information - headers already sent by (output started at /www/110mb.com/c/h/a/t/n/o/t/e/chatnotes/htdocs/login/login2.php:3) in /www/110mb.com/c/h/a/t/n/o/t/e/chatnotes/htdocs/login/login2.php on line 77 You are now logged in. The code for the page is this: <head> <?php // Connects to your Database mysql_connect("localhost","username","password") or die(mysql_error()); mysql_select_db("databse") or die(mysql_error()); //Checks if there is a login cookie if(isset($_COOKIE['site_id'])) //if there is, it logs you in and directes you to the members page { $username = $_COOKIE['site_id']; $pass = $_COOKIE['site_key']; $check = mysql_query("SELECT * FROM login WHERE username = '$username'")or die(mysql_error()); while($info = mysql_fetch_array( $check )) { if ($pass != $info['password']) { } else { header("Location: adminarea.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['username'] = addslashes($_POST['username']); } $check = mysql_query("SELECT * FROM login 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=registration.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; $username = $_POST['username']; $password = $_POST['pass']; setcookie("site_id", $username, $hour); setcookie("site_key", $password, $hour); //then redirect them to the members area die('You are now logged in.'); } } } 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 } ?> PLEASE HELP!!! Link to comment https://forums.phpfreaks.com/topic/120865-solved-aboutcoms-php-login-script-help/ Share on other sites More sharing options...
BlueSkyIS Posted August 22, 2008 Share Posted August 22, 2008 there must be NO html or anything else output before a header() call, including this: <head> Link to comment https://forums.phpfreaks.com/topic/120865-solved-aboutcoms-php-login-script-help/#findComment-623036 Share on other sites More sharing options...
revraz Posted August 22, 2008 Share Posted August 22, 2008 Stickies are your friend http://www.phpfreaks.com/forums/index.php/topic,37442.0.html Link to comment https://forums.phpfreaks.com/topic/120865-solved-aboutcoms-php-login-script-help/#findComment-623044 Share on other sites More sharing options...
crochk Posted August 22, 2008 Author Share Posted August 22, 2008 there must be NO html or anything else output before a header() call, including this: <head> Thanks for your reply, sadly it did not change the resulting errors. Link to comment https://forums.phpfreaks.com/topic/120865-solved-aboutcoms-php-login-script-help/#findComment-623059 Share on other sites More sharing options...
DarkWater Posted August 22, 2008 Share Posted August 22, 2008 You removed the <head> tag and any and all white space before the opening PHP tag? This is why you're supposed to separate business logic and layout logic. *facepalm* Link to comment https://forums.phpfreaks.com/topic/120865-solved-aboutcoms-php-login-script-help/#findComment-623061 Share on other sites More sharing options...
crochk Posted August 22, 2008 Author Share Posted August 22, 2008 This is the new code, and still errors: <?php // Connects to your Database mysql_connect("localhost","username","password") or die(mysql_error()); mysql_select_db("databse") or die(mysql_error()); //Checks if there is a login cookie if(isset($_COOKIE['site_id'])) //if there is, it logs you in and directes you to the members page { $username = $_COOKIE['site_id']; $pass = $_COOKIE['site_key']; $check = mysql_query("SELECT * FROM login WHERE username = '$username'")or die(mysql_error()); while($info = mysql_fetch_array( $check )) { if ($pass != $info['password']) { } else { header("Location: adminarea.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['username'] = addslashes($_POST['username']); } $check = mysql_query("SELECT * FROM login 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=registration.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; $username = $_POST['username']; $password = $_POST['pass']; setcookie("site_id", $username, $hour); setcookie("site_key", $password, $hour); //then redirect them to the members area die('You are now logged in.'); } } } 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 } ?> Link to comment https://forums.phpfreaks.com/topic/120865-solved-aboutcoms-php-login-script-help/#findComment-623065 Share on other sites More sharing options...
DarkWater Posted August 22, 2008 Share Posted August 22, 2008 Remove all whitespace. Link to comment https://forums.phpfreaks.com/topic/120865-solved-aboutcoms-php-login-script-help/#findComment-623066 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.