Jump to content


Photo

Header


  • Please log in to reply
6 replies to this topic

#1 loren646

loren646

    Advanced Member

  • Members
  • PipPipPip
  • 53 posts

Posted 24 March 2013 - 12:54 PM

"Warning: Cannot modify header information - headers already sent by"

 

http://php.about.com...ogin_code_4.htm

 

i'm just putting this code in. didn't modify it at all.

line 51-57:

 

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 

 

Warning: Cannot modify header information - headers already sent by on line 54
Warning: Cannot modify header information - headers already sent by  on line 54
Warning: Cannot modify header information - headers already sent by on line 56

 

full code below:

 

-----------------

 

<?php // Connects to your Database
mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error()); mysql_select_db("Database_Name") 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=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: 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="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 } ?>  


Edited by loren646, 24 March 2013 - 12:59 PM.


#2 haku

haku

    Advanced Member

  • Staff Alumni
  • 6,172 posts

Posted 24 March 2013 - 01:00 PM

Please use code tags around your code. You can do this with the <> button in the editor.



#3 loren646

loren646

    Advanced Member

  • Members
  • PipPipPip
  • 53 posts

Posted 24 March 2013 - 01:53 PM

<?php // Connects to your Database
mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error()); mysql_select_db("Database_Name") 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=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: 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="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 } ?>  


#4 PaulRyan

PaulRyan

    Hello World

  • Members
  • PipPipPip
  • 873 posts
  • LocationUK
  • Age:22

Posted 24 March 2013 - 02:01 PM

Turn of full error reporting:

<?PHP

  error_reporting(E_ALL);
  ini_set("display_errors", 1);

?>

 

Also, this line:

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

 

Should be:

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

My Internet Home - Dumping ground for new ideas/tips/tricks and general grievances of developing.

 

Firefox 17 - PHP 5.4 - MySQL 5 - Win7 [64-bit]

Rule for asking for help: If you don't show that you've tried to accomplish something, you don't deserve help.


#5 loren646

loren646

    Advanced Member

  • Members
  • PipPipPip
  • 53 posts

Posted 24 March 2013 - 02:36 PM

 <?php // Connects to your Database 
 
  error_reporting(E_ALL);
  ini_set("display_errors", 1);
 
 
mysql_connect("localhost", "xxxx", "xxxx") or die(mysql_error()); mysql_select_db("xxxx") 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=areg.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: 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="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 } ?> 

 

added error checking.  added "//" before the email part (not sure why that's in there.) 

 

These are now the current errors:

 

Notice: Use of undefined constant ID_my_site - assumed 'ID_my_site' in login.php on line 60

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

Notice: Use of undefined constant Key_my_site - assumed 'Key_my_site' in login.php on line 61

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

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


Edited by loren646, 24 March 2013 - 02:37 PM.


#6 PaulRyan

PaulRyan

    Hello World

  • Members
  • PipPipPip
  • 873 posts
  • LocationUK
  • Age:22

Posted 24 March 2013 - 02:45 PM

Then there is your answer, look the errors up and you should be good to go.


My Internet Home - Dumping ground for new ideas/tips/tricks and general grievances of developing.

 

Firefox 17 - PHP 5.4 - MySQL 5 - Win7 [64-bit]

Rule for asking for help: If you don't show that you've tried to accomplish something, you don't deserve help.


#7 loren646

loren646

    Advanced Member

  • Members
  • PipPipPip
  • 53 posts

Posted 24 March 2013 - 03:17 PM

In case anyone else is having this problem. For future reference. I deleted all the white space. I guess the formatting caused problems. 


SOLVED.


Edited by loren646, 24 March 2013 - 03:18 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Cheap Linux VPS from $5
SSD Storage, 30 day Guarantee
1 TB of BW, 100% Network Uptime

AlphaBit.com