Reply
Member Script help.
Old 04-16-2008, 09:06 AM Member Script help.
Gilligan's Avatar
Dead Like Me

Posts: 1,582
Name: Stefan
Location: London, UK
Warning: Cannot modify header information - headers already sent by.....

Yet this was working before I added my template to it.

PHP Code:
<?php include ('/home/a5839198/public_html/inc/config.php'); ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>SGilligan :: Home</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../css/style.css">

</head>

<body><div id="main">

<div class="logo">
</div>

<?php echo $iNav ?>     

<div class="content">
<div class="box3">
  <div class="title style1" style="margin-bottom:30px">Client Area - Login</div>
  <div class="iBox"><?php
// Connects to your Database

// DATABASE INFO HERE! - Not displayed for security

//Checks if there is a login cookie
if(isset($_COOKIE['loginsystem0029388172']))

//if there is, it logs you in and directes you to the members page
{
$username $_COOKIE['loginsystem0029388172'];
$pass $_COOKIE['systemlogin123ss343d8'];
$check mysql_query("SELECT * FROM members 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 members 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="register.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(loginsystem0029388172$_POST['username'], $hour);
setcookie(systemlogin123ss343d8$_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>Username:</td><td>
<input type="text" name="username" maxlength="60">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Login"></td>
</tr>
</table>
</form>
<?php
}

?>
</div>


  
  </div></div>

</div>
<?php echo $footer ?></body>
</html>
mainly this line

PHP Code:
header("Location: members.php"); 
its an else statement, so if the user logged in successfully they SHOULD get redirected to members.php. But I get the headers warning.
Gilligan is offline
Reply With Quote
View Public Profile
 
When You Register, These Ads Go Away!
     
Old 04-16-2008, 10:31 AM Re: Member Script help.
Super Spam Talker

Posts: 872
Hi Gilligan,

PHP is moaning at you because you cannot redirect using the header() function if anything is outputted to the screen before its called. In your case, HTML.

The second the HTML is printed to screen a content header is automatically set, and then you are trying to set it again using the header() function you see.

You could use a meta redirect or move your PHP up so it runs before your HTML output.

Cheers,
Sir P is offline
Reply With Quote
View Public Profile
 
Old 04-16-2008, 10:47 AM Re: Member Script help.
Gilligan's Avatar
Dead Like Me

Posts: 1,582
Name: Stefan
Location: London, UK
Meta refresh makes the page redirect, but right before it does I get this......


Warning: Cannot modify header information - headers already sent by (output started at /PATH/login.php:18) in /PATH/login.php on line 87


Warning: Cannot modify header information - headers already sent by (output started at /PATH/login.php:18) in /PATH/login.php on line 88

line 87 and 88 are:
PHP Code:
setcookie(loginsystem0029388172$_POST['username'], $hour);
setcookie(systemlogin123ss343d8$_POST['pass'], $hour); 
Gilligan is offline
Reply With Quote
View Public Profile
 
Old 04-16-2008, 10:50 AM Re: Member Script help.
Super Spam Talker

Posts: 872
The same rule applies to setcookie(), cookie() and session functions.. you cant put HTML or any other output before you call them I'm afraid....move those two lines to the top of the HTML to avoid the error.
Sir P is offline
Reply With Quote
View Public Profile
 
Old 04-16-2008, 11:14 AM Re: Member Script help.
Skilled Talker

Posts: 60
Just put ob_start(); at the very beginning of your script and ob_end_flush(); to the very end. This will parse PHP before HTML so you won't get those errors.
CrazeDizzleD is offline
Reply With Quote
View Public Profile
 
Old 04-16-2008, 11:26 AM Re: Member Script help.
Gilligan's Avatar
Dead Like Me

Posts: 1,582
Name: Stefan
Location: London, UK
Thanks, that done it
Gilligan is offline
Reply With Quote
View Public Profile
 
Reply     « Reply to Member Script help.
 

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off




   
RSS Feed  Feeds: RSS   JS   XML
RSS Feed  Feeds for this forum: RSS   JS   XML

 


Page generated in 0.13163 seconds with 13 queries