|PHP and Cookies|
headers already sent..but they aint!
| 3:19 pm on Oct 22, 2002 (gmt 0)|
everytime i use the right login/pass i get the error
Cannot add header information - headers already sent by (output started at C:\sites\php\login.php:1)
as far as I'm aware I have'nt set any headers
(the very first code on the page)
if (($submit=='submit') && (($user!='') ¦¦ ($pass!='')))
require('user and password stuff.php');
$query="SELECT * FROM sometable WHERE username='$user' && password='$pass'";
setcookie( "pfinduser", "$user", mktime(0, 0, 0, 5, 14, 2036) );
setcookie( "pfindpass", "$pass", mktime(0, 0, 0, 5, 14, 2036) );
$log = "yes";
$log = "no";
$log2 = "fail";
$log = "no";
| 3:25 pm on Oct 22, 2002 (gmt 0)|
Ought to do it for you. I've had the same problem before, and although the docs seem to indicate that one ought to be able to send headers as long as you haven't produced any other output yet, it doesn't seem to be the case unless you explicitly turn on output buffering.
| 3:29 pm on Oct 22, 2002 (gmt 0)|
ack! did'nt work - just get the same errors on the lines where the cookies get set
| 3:35 pm on Oct 22, 2002 (gmt 0)|
hmm... is output buffering turned off in your php.ini?
| 3:36 pm on Oct 22, 2002 (gmt 0)|
|Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file. |
Did you check that there are no blank lines anywhere?
Telnet to your script and youŽll see what its output is up until you get that error message.
| 3:38 pm on Oct 22, 2002 (gmt 0)|
The comments should provide the answer but in a nutshell, make sure nothing (no blank lines or even a DTD) appear within the required file before the <?php .
| 3:40 pm on Oct 22, 2002 (gmt 0)|
I hope Andreas & Lorax are right, but I know I've had to turn on output buffering for files that have no requires, no includes, and failed to work when the first characters of the file were '<?php header('.
| 3:45 pm on Oct 22, 2002 (gmt 0)|
Thanks for the replies
I have fixed the problem, I had already cheacked for includes, blank lines etc a gazillion times.
I then copied all the text and pasted it into notepad and it works perfectly!
I no understandy, very bizarre I think somehow file was corrupted and inserting characters? thats the only thing I can think of anyway.