0

hi i am new to php. i am getting the following error.

------Cannot modify header information - headers already sent by (output started at C:\Program Files\Apache Group\Apache2\htdocs\login\login.php:23)-----------


<html>
<body>
<form action="login.php" method="post">
<div>
<table width="100%">
<tr>
<td><img src="Logofinalcopy.gif"></td>
</tr>
<tr>
<td bgcolor="aqua"><h2>Login</h2></td>
</tr></table>
<table align="right" style="width:40%">
<br>
<tr>
<td>username:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>password:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td align="CENTER" COLSPAN="4">
<input TYPE="SUBMIT" name="submit" value="Login">
<input TYPE="reset" name="submit" value="clear"></td>
</tr>
</table>
</div>
</form>
</body>
</html>
<?php
if(isset($_POST['submit']))
{
 $con = mysql_connect("10.70.1.50","invensis","invensis");
 if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
  $con= mysql_select_db("Login",$con);
  if (!$con)
  {
  die('Could not connect DB: ' . mysql_error());
  }
  $sql="SELECT * FROM users WHERE username='invensis' AND password='invensis'";
  $result=mysql_query($sql); 
  $count= mysql_num_rows($result);
  echo $count;
  if($count==1)
  {
            $sql = mysql_query("SELECT role FROM users WHERE username='invensis' AND password='invensis'");
            while($info = mysql_fetch_array($sql))
            {
                if($info['role']=='0')
                {
                    header('location: [url]http://localhost//login/test.php');[/url]
                }
                else 
                {
                    echo 'null';
                }
            } 
  }             
} 

Edited by mike_2000_17: Fixed formatting

2
Contributors
2
Replies
3
Views
7 Years
Discussion Span
Last Post by niths
0

You cannot send any output to the browser before using the header() function. So put all the html content and your echo statements in your code after the header() function.
If you still want to use the browser output before the header(), then you need to do something like this..

<?php 
ob_start();
?>
<html>
<body>
Testing!
</body>
</html>
<?php 
$x = 0;
if ($x == 1) {
	header("location:http://google.com");
} else {
	// do nothing but send the browser output.
	ob_end_flush();
}
?>

For more info on how the functions ob_start(), ob_end_flush() and header() works go through the following links.

http://in.php.net/manual/en/function.ob-start.php
http://in.php.net/manual/en/function.ob-end-flush.php
http://in.php.net/manual/en/function.header.php

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.