PHP code help

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
Brad7928
Forum Commoner
Posts: 39
Joined: Thu Jan 29, 2009 4:54 pm

PHP code help

Post by Brad7928 »

Before we get started, i know some of the HTML is incorrect, this is just a test, but still no excuse for bad coding.

I have a problem with the login code... it was working fine, but i don't know what i have changed to make it not work...
It displays the following errors when i try to login:

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp2\htdocs\gaming\index.php:3) in C:\xampp2\htdocs\gaming\index.php on line 70

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp2\htdocs\gaming\index.php:3) in C:\xampp2\htdocs\gaming\index.php on line 71

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp2\htdocs\gaming\index.php:3) in C:\xampp2\htdocs\gaming\index.php on line 74

and i have had a error on line 24 of this file.

(i have marked the lines below)



This is the index.php file: (the line numbers are wrong. the forum has placed a blank line at the start, so they will always be one out.)

Code: Select all

 
<html>
<head>
<style type="text/css">
body { background-color:orange } 
</style>
</head>
 
<body>
<?php 
// Connects to your Database 
mysql_connect("localhost", "root", "******") or die(mysql_error()); 
mysql_select_db("users") 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'])  //line 24
{
}
else
{
header("Location: home.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=reg.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. <a href="java script&#058;history.go(-1)">Go Back</a>');
}
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);   //line 70
setcookie(Key_my_site, $_POST['pass'], $hour);  //line 71
 
//then redirect them to the members area 
header("Location: home.php");   //line 74
} 
} 
} 
else 
{ 
 
// if they are not logged in 
?> 
<!--Logo-->
<br> </br>
<center>
  <h2>Hosted By:</h2>
  <a href="http://www.forum-indoor.info/"><img src="http://www.forum-indoor.info/wp-content/uploads/2008/12/forum-logo-blue-background-copy.jpg"></a> 
<br> </br>
<br> </br>
 
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> 
<table border="0"> 
<tr><td colspan=2><h3>Log In:</h3></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"><button style="width: 70px; height: 24px;" onclick="window.location='http://www.forum-indoor.info/gaming/reg.php'">Register</button></td>
<td colspan="2" align="right"> 
<input type="submit" name="submit" value="Login"> 
</td></tr> 
</table> 
</form> 
<br> </br>
<center>
<h5>Cookies must be enabled past this point.</h5>
<h5>Need help registering? Email <a href="mailto:Brad@forum-indoor.info">Brad@forum-indoor.info</a></h5>
 
<?php 
} 
 
?> 
</body>
</html>
 
User avatar
VladSun
DevNet Master
Posts: 4313
Joined: Wed Jun 27, 2007 9:44 am
Location: Sofia, Bulgaria

Re: PHP code help

Post by VladSun »

You can't use header() after you have echoed anything.
There are 10 types of people in this world, those who understand binary and those who don't
Brad7928
Forum Commoner
Posts: 39
Joined: Thu Jan 29, 2009 4:54 pm

Re: PHP code help

Post by Brad7928 »

VladSun wrote:You can't use header() after you have echoed anything.
Where did i echo something?
User avatar
VladSun
DevNet Master
Posts: 4313
Joined: Wed Jun 27, 2007 9:44 am
Location: Sofia, Bulgaria

Re: PHP code help

Post by VladSun »

Code: Select all

<html> <head> <style type="text/css"> body { background-color:orange } </style></head> ...
This is also considered "echoing".
There are 10 types of people in this world, those who understand binary and those who don't
User avatar
califdon
Jack of Zircons
Posts: 4484
Joined: Thu Nov 09, 2006 8:30 pm
Location: California, USA

Re: PHP code help

Post by califdon »

Just to clarify, it doesn't matter whether it is "echoed" by PHP or just sent by the web server, the point is that once anything is sent from the server to the browser, you can no longer send any header data.
Brad7928
Forum Commoner
Posts: 39
Joined: Thu Jan 29, 2009 4:54 pm

Re: PHP code help

Post by Brad7928 »

VladSun wrote:This is also considered "echoing".
aha... i think i figured this out... in a roundabout way... i deleted the <html> through to the </head> tag and it worked, so i then proceded to place what was between those two tage in here:

Code: Select all

 
...
 
setcookie(ID_my_site, $_POST['username'], $hour);   //line 70
setcookie(Key_my_site, $_POST['pass'], $hour);  //line 71
//then redirect them to the members area 
header("Location: home.php");   //line 74
} 
} 
} 
else 
{ 
// if they are not logged in 
?> 
<html>
<head>
<style type="text/css">
body { background-color:orange } 
</style>
</head>
<!--Logo-->
<br> </br>
<center>
  <h2>Hosted By:</h2>
...
 
and it worked. Thanks for the help guys/girls.
Post Reply