943,754 Members | Top Members by Rank

Ad:
  • PHP Discussion Thread
  • Marked Solved
  • Views: 132927
  • PHP RSS
You are currently viewing page 1 of this multi-page discussion thread
Sep 4th, 2007
0

PHP Warning: Cannot modify header information - headers already sent by (output .....

Expand Post »
Hello please help me troubleshooting this. i got this error in my login.. pleaaaaase. below is the error that prompts me when i login:


PHP Warning: Cannot modify header information - headers already sent by (output started at D:\HostingSpaces\spindev\spindev.spinweb.ph\wwwroot\YPS\login\login.php:9) in D:\HostingSpaces\spindev\spindev.spinweb.ph\wwwroot\YPS\login\login.php on line 71 PHP Warning: Cannot modify header information - headers already sent by (output started at D:\HostingSpaces\spindev\spindev.spinweb.ph\wwwroot\YPS\login\login.php:9) in D:\HostingSpaces\spindev\spindev.spinweb.ph\wwwroot\YPS\login\login.php on line 72 PHP Warning: Cannot modify header information - headers already sent by (output started at D:\HostingSpaces\spindev\spindev.spinweb.ph\wwwroot\YPS\login\login.php:9) in D:\HostingSpaces\spindev\spindev.spinweb.ph\wwwroot\YPS\login\login.php on line 75


Here is my code: please tell me what's going wrong. thanks.

<?php
// Connects to your Database
mysql_connect("spindev.spinweb.ph", "spindev_ypsuser", "yps123") or die(mysql_error());
mysql_select_db("spindev_ypsnew") or die(mysql_error());
//checks cookies to make sure they are logged in
if(isset($_COOKIE['ID_my_site']))
{
$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 the cookie has the wrong password, they are taken to the login page
if ($pass != $info['password'])
{ header("Location: login.php");
}
//otherwise they are shown the admin area
else
{
echo "Admin Area<p>";
echo "Your Content<p>";
echo "<a href=logout.php>Logout</a>";
}
}
}
else
//if the cookie does not exist, they are taken to the login screen
{
header("Location: login.php");
}
?>


Similar Threads
Reputation Points: 10
Solved Threads: 0
Junior Poster in Training
dudegio is offline Offline
66 posts
since May 2007
Sep 4th, 2007
0

Re: PHP Warning: Cannot modify header information - headers already sent by (output .

From first glance it looks like you've placed echo above the header location script.

Headers must be parsed before any HTML, and for some reason (Unknown by me, but I'm sure others can answer why) certain hosts don't like it when you place any HTML above header tags.

I would stick the HTML below the php code, specifically below the Header("Location: login.php") script.

Eg:
php Syntax (Toggle Plain Text)
  1. <?php
  2. // Connects to your Database
  3. mysql_connect("spindev.spinweb.ph", "spindev_ypsuser", "yps123") or die(mysql_error());
  4. mysql_select_db("spindev_ypsnew") or die(mysql_error());
  5. //checks cookies to make sure they are logged in
  6. if(isset($_COOKIE['ID_my_site']))
  7. {
  8. $username = $_COOKIE['ID_my_site'];
  9. $pass = $_COOKIE['Key_my_site'];
  10. $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
  11. while($info = mysql_fetch_array( $check ))
  12. {
  13. //if the cookie has the wrong password, they are taken to the login page
  14. if ($pass != $info['password'])
  15. {
  16. header("Location: login.php");
  17. }
  18. //otherwise they are shown the admin area
  19. else
  20. {
  21. //echo "Admin Area<p>";
  22. //echo "Your Content<p>";
  23. //echo "<a href=logout.php>Logout</a>";
  24. }
  25. }
  26. }
  27. else
  28. //if the cookie does not exist, they are taken to the login screen
  29. {
  30. header("Location: login.php");
  31. }
  32. ?>
  33. <h1>Admin Area</h1>
  34. <p>Your content</p>
  35. <p><a href="logout.php">Logout</a>
I could be completely off the mark, since it is late. I'd suggest tweaking the order of your conditions so that if an error occurs the user is directed away from the page, otherwise the html at the end loads on a successful log in.
Reputation Points: 10
Solved Threads: 2
Newbie Poster
WhiteLeo is offline Offline
16 posts
since Feb 2007
Sep 4th, 2007
3

Re: PHP Warning: Cannot modify header information - headers already sent by (output .

try placing this at the top of your page:
<? ob_start(); ?>

then at the bottom of the page place this line of code:

<? ob_flush(); ?>
Reputation Points: 10
Solved Threads: 5
Junior Poster in Training
JeniF is offline Offline
52 posts
since Aug 2007
Sep 4th, 2007
0

Re: PHP Warning: Cannot modify header information - headers already sent by (output .....

Thanks to both of you. I have tried your solution JeniF and the login script works. Thanks a lot. I will try to implement your solutions as well WhiteLeo so that i do have lot of references if it works. Thank you very much again.
Last edited by dudegio; Sep 4th, 2007 at 11:27 pm.
Reputation Points: 10
Solved Threads: 0
Junior Poster in Training
dudegio is offline Offline
66 posts
since May 2007
Sep 11th, 2007
0

Re: PHP Warning: Cannot modify header information - headers already sent by (output .

Really Thank you for your Valuable info.....
Reputation Points: 10
Solved Threads: 0
Newbie Poster
sujithfem is offline Offline
9 posts
since Sep 2007
Feb 19th, 2008
0

Re: PHP Warning: Cannot modify header information - headers already sent by (output .

Click to Expand / Collapse  Quote originally posted by JeniF ...
try placing this at the top of your page:
<? ob_start(); ?>

then at the bottom of the page place this line of code:

<? ob_flush(); ?>
_________________________________________________
Thank you so much JeniF. I have been receiving a similar error for days now, and have been unable to complete a class assignment. Popped your suggestion in, and it now works. My elation is directly correlated to my previous frustration, and I just wanted to take the time to say thanks. Have a good one.

(Incidentally, if you get the time, what exactly is the recommended code doing?)
Reputation Points: 10
Solved Threads: 0
Newbie Poster
TaiShar is offline Offline
1 posts
since Feb 2008
Feb 19th, 2008
0

Re: PHP Warning: Cannot modify header information - headers already sent by (output .....

Quote ...
(Incidentally, if you get the time, what exactly is the recommended code doing?)
ob_start() . Its turning on the output buffer. So any output is kept in the buffer. And ob_flush() is to flush the buffer
Moderator
Featured Poster
Reputation Points: 524
Solved Threads: 356
Purple hazed!
nav33n is offline Offline
3,878 posts
since Nov 2007
May 19th, 2008
0

Re: PHP Warning: Cannot modify header information - headers already sent by (output .....

I had a problem with the "headers already sent" too at my http://www.maxi-pedia.com website. In my case, it was caused by a blank line at the beginning of one *.inc file. PHP seems to have problems with extra spaces here and there.

Check all your *.inc files to make sure you do not have closing ?> in any of them. Closing ?> is not needed in your *.inc files. Check all your *.php files to make sure you do not have blank lines at the beginning or at the end.

If you are working in a CMS, then it may be caused by some module, disable your modules one by one to find out which one causes this.

This can also be caused by UTF-8. If you have your website coded in ASCII and are saving your php files as UTF-8, it can cause this message. If your website and DB are UTF-8, you should be ok with saving php files as UTF-8 though.

Btw, this error message is related to output_buffering on/off in your php.ini. If you have output_buffering set to some cache, the server will allow to send headers with delay (or to modify them shortly after they are sent), and this error will not be tripped. But if you set output_buffering to 0 or not at all, then headers can be sent at only one moment, and if you have some bad code, it will trip this error message.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
xjessie007 is offline Offline
1 posts
since May 2008
Feb 11th, 2009
0

Re: PHP Warning: Cannot modify header information - headers already sent by (output .

thanks to jenif that worked perfectly few - strange as i had had a site up for sometime and it nevr encountered the problem until recently
Last edited by odalton; Feb 11th, 2009 at 5:59 pm.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
odalton is offline Offline
1 posts
since Feb 2009
Jul 3rd, 2009
0

Re: PHP Warning: Cannot modify header information - headers already sent by (output .

Click to Expand / Collapse  Quote originally posted by JeniF ...
try placing this at the top of your page:
<? ob_start(); ?>

then at the bottom of the page place this line of code:

<? ob_flush(); ?>
I Googled on this problem and found your simple solution, JeniF. Because of you, I joined DaniWeb. Thought you should know that even 2 years later your reply is still helping people!

Thanks, JeniF!! And thanks DaniWeb!

John
Reputation Points: 10
Solved Threads: 0
Newbie Poster
JohnE1 is offline Offline
4 posts
since Jul 2009

This thread is solved

Either the thread starter or a moderator has marked this thread as solved. You can most likely trust the responses and answers given. There is most likely no reason for any further responses to be posted here. If you have a related question, please start a new thread in this forum instead.
Message:
Previous Thread in PHP Forum Timeline: Table PHP
Next Thread in PHP Forum Timeline: view image as localhost?





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC