Page 1 of 1

Cannot modify header information

Posted: Thu Mar 31, 2011 12:54 pm
by liyun88
Hi, i have some problem during implement the system.
here is my error Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\nagels\register.php:2)
i dun know how to solve .i already try to solve it but dun know what is the problem.
i need to link to the login page after successful save into database.but cannot link to login page.
can anyone help me to solve??
thanks in advanced..
here is my code
<?php include 'common/config.php' ?>
<?php
// Reset errors and success messages
$errors = array();
$success = array();

// Register attempt
if(isset($_POST['registerSubmit']) && $_POST['registerSubmit'] == 'true'){
$registerName = stripslashes(trim($_POST['name']));
$registerUsername = stripslashes(trim($_POST['username']));
$registerPassword = stripslashes(trim($_POST['password']));
$registerConfirmPassword = stripslashes(trim($_POST['confirmPassword']));
$registerGender = stripslashes(trim($_POST['gender']));
$registerPhone = stripslashes(trim($_POST['phone']));
$registerEmail = stripslashes(trim($_POST['email']));
$registerAddress = stripslashes(trim($_POST['address']));

if (!eregi('^[[:alnum:]\.\'\-]{4,20}$', $registerName) )
$errors['registerName'] = '<font color="red">Please provide a valid username between 4 and 20 characters.</font>';

if (!eregi('^[[:alnum:]\.\'\-]{3,10}$', $registerUsername) )
$errors['registerUsername'] = '<font color="red">Please provide a valid username between 3 and 10 characters.</font>';

if (!empty($registerPassword)) {
if(strlen($registerPassword) < 6 || strlen($registerPassword) > 12) {
$errors['registerPassword'] = '<font color="red">Your password must be between 6-12 characters.</font>';
} else {
$password = $registerPassword;
}
} else {
$errors['registerPassword'] = '<font color="red">Please provide a password.</font>';
}

if($registerPassword != $registerConfirmPassword)
$errors['registerConfirmPassword'] = '<font color="red">Your passwords did not match.</font>';

if (empty($registerGender))
$errors['registerGender'] = '<font color="red">Please select one gender.</font>';

if (!eregi('[0-9]{9,12}$', $registerPhone) )
$errors['registerPhone'] = '<font color="red">Please provide a valid contact no between 9 and 12 characters.</font>';

if (!eregi("^[^@]{1,64}@[^@]{1,255}$", $registerEmail))
$errors['registerEmail'] = '<font color="red">Please provide a valid email address.</font>';

if (empty($registerAddress) )
$errors['registerAddress'] = '<font color="red">Please provide an address.</font>';



// Check to see if we have a user registered with this username and email address already
$query = 'SELECT * FROM register WHERE username = "' . mysql_real_escape_string($registerUsername) .'" LIMIT 1';
$result = mysql_query($query);
if(mysql_num_rows($result) == 1)
$errors['registerUsername'] = '<font color="red">The username already exists.</font>';

if(!$errors){
$query = 'INSERT INTO register SET name = "' . mysql_real_escape_string($registerName) . '",
username = "' . mysql_real_escape_string($registerUsername) . '",
password = MD5("' . mysql_real_escape_string($registerPassword) . '"),
gender = "' . mysql_real_escape_string($registerGender) . '",
phone = "' . mysql_real_escape_string($registerPhone) . '",
email = "' . mysql_real_escape_string($registerEmail) . '",
address = "' . mysql_real_escape_string($registerAddress) . '",
date_registered = "' . date('Y-m-d H:i:s') . '"';

if(mysql_query($query)){
header('Location: login.php');
exit;
}else{
$errors['register'] = 'There was a problem registering you. Please check your details and try again.';
}
}

}
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>Login to the secure area</title>
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;"/>
<link rel="stylesheet" type="text/css" href="default.css"/>
</head>

<body>

<p align="center"> <font size="+2"><strong><em><font color="#000000">Registration
Form </font></em></strong></font></p><p align="center">&nbsp;</p>


<form class="box400" name="registerForm" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<?php if($success['register']) print '<div class="valid">' . $success['register'] . '</div>'; ?>
<?php if($errors['register']) print '<div class="invalid">' . $errors['register'] . '</div>'; ?>
<div align="center">
<table>
<tr>
<td><label for="name">Name</label></td>
<td><input type="text" name="name" value="<?php echo $_REQUEST['name'] ?>"></td>
<td><?php if($errors['registerName']) print '<div class="invalid">' . $errors['registerName'] . '</div>'; ?></td>
</tr>
<tr>
<td><label for="username">Username</label></td>
<td><input type="text" name="username" value="<?php echo $_REQUEST['username'] ?>"></td>
<td><?php if($errors['registerUsername']) print '<div class="invalid">' . $errors['registerUsername'] . '</div>'; ?></td>
</tr>
<tr>
<td><label for="password">Password</label></td>
<td><input type="password" name="password" value="" /></td>
<td><?php if($errors['registerPassword']) print '<div class="invalid">' . $errors['registerPassword'] . '</div>'; ?></td>
</tr>
<tr>
<td><label for="confirmPassword">Confirm Password</label></td>
<td><input type="password" name="confirmPassword" value="" /></td>
<td><?php if($errors['registerConfirmPassword']) print '<div class="invalid">' . $errors['registerConfirmPassword'] . '</div>'; ?></td>
</tr>
<tr>
<td><label for="gender">Gender</label></td>
<td><input type="radio" name="gender" value="1" <?php echo $_REQUEST['gender'] == 1 ? "checked" : "" ?>>
Male
<input type="radio" name="gender" value="2" <?php echo $_REQUEST['gender'] == 2 ? "checked" : "" ?>>
Female </td>
<td><?php if($errors['registerGender']) print '<div class="invalid">' . $errors['registerGender'] . '</div>'; ?></td>
</tr>
<tr>
<td><label for="phone">Contact No</label></td>
<td><input type="text" name="phone" value=""></td>
<td><?php if($errors['registerPhone']) print '<div class="invalid">' . $errors['registerPhone'] . '</div>'; ?></td>
</tr>
<tr>
<td><label for="email">Email</label></td>
<td><input type="text" name="email" value="<?php echo htmlspecialchars($registerEmail); ?>" /></td>
<td><?php if($errors['registerEmail']) print '<div class="invalid">' . $errors['registerEmail'] . '</div>'; ?></td>
</tr>
<tr>
<td><label for="address">Address</label></td>
<td><input type="text" name="address" value=""></td>
<td><?php if($errors['registerAddress']) print '<div class="invalid">' . $errors['registerAddress'] . '</div>'; ?></td>
</tr>






</table>
<label for="registerSubmit">&nbsp;</label>
<input type="hidden" name="registerSubmit" id="registerSubmit" value="true" />
<input name="submit2" type="submit" value="Register" />

</div>
</form>
</body>
</html>

Re: Cannot modify header information

Posted: Thu Mar 31, 2011 1:03 pm
by AbraCadaver
You can't have any output of any kind before a header call.

Code: Select all

<?php include 'common/config.php' ?> there is a newline here because it is considered HTML as it is outside of PHP tags
<?php
// Reset errors and success messages 
Change to:

Code: Select all

<?php
include 'common/config.php';
// Reset errors and success messages

Re: Cannot modify header information

Posted: Thu Mar 31, 2011 10:03 pm
by liyun88
thanks for your help..it works now..
:)