ugrás a tartalomhoz

Cannot modify header information hiba setcookie()-ra

Petrusz · 2007. Jún. 29. (P), 00.33
Sziasztok,

Tudnátok nekem abban segíteni, hogy miért nem tud a login a headerbe írni?

"Warning: Cannot modify header information - headers already sent by (output started at /disk/raid3/w/e/weberp/forum/login.php:17) in /disk/raid3/w/e/weberp/forum/login.php on line 42"

login.php
  1. <td>&nbsp;</td>  
  2. <td><input type="submit" name="Submit" value="Login" class=form></td>  
  3. </tr>  
  4. </table>  
  5. </form>  
  6. <?php  
  7. if($_POST['Submit']){  
  8. $user = $_POST['user'];  
  9. $pass = $_POST['pass'];  
  10. $pass_md5 = md5($pass);  
  11. include("config.php");  
  12.   
  13. if(emptyempty($user)){  
  14. echo "Please, insert an username.<br>  
  15. <a href=?id=login>Go Back</a>.";  
  16. die();  
  17. };  
  18.   
  19. if(emptyempty($pass)){  
  20. echo "Please, insert a password.<br>  
  21. <a href=?id=login>Go Back</a>.";  
  22. die();  
  23. };  
  24.   
  25. $ok = mysql_query("SELECT * FROM `forum_users` WHERE user='$user' and pass='$pass_md5'")  
  26. or die ("Wrong Password and Username combination, please, <a href=login.php>go back</a> and try again, or register <a href=register.php>here</a> for free if you dont have an account");  
  27. $worked = mysql_fetch_array($ok);  
  28. if($worked){  
  29. $r = mysql_fetch_array(mysql_query("SELECT * FROM `forum_users` WHERE user='$user'and pass='$pass_md5'"));  
  30. $signature = "$r[signature]";  
  31. setcookie ("forum",$user,time()+1957240);  
A programot a http://ethereal-design.info/?id=tutorials&get=showtut&tid=3 szedtem le egy forumocska. és a weberp.fw.hu-n tesztelgetem

Köszönöm!
 
1

php tag előre

bandi · 2007. Jún. 29. (P), 07.17
Annak ellenére, hogy ilyen olvashatatlan formában küldted be a kódot, megpróbáltam bele nézni, és annyit látok, hogy a legvégén adtak ki a set cookie parancsot. Én nem ismerem nagyon ezt a parancsot, de az biztos, hogy a cookie-kat a szerver a headerben küldi (ugye ha olvasnád a manualt, mielőtt kérdezel: http://hu2.php.net/setcookie), tehát ha már van küldött szöveg, ami jelen esetben a <td> tag-ed, akkor már nem tudja cookie-kat sem elküldeni. Megoldás: vedd előre a php nyitó tag-et, és csak utána írjad a html markup-ot.

updt.
így már sokkal áttekinthetőbb a kód