Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Headers already sent
Forum PHP.pl > Forum > Przedszkole
Lethys
Wiem że tego typu tematy były milion razy, szukałem ale nic nie pomogło bo wydaje się że robię dobrze.

Dobra o co chodzi :

Na stronie login.php przy logowaniu wywala mi błąd :

Cytat
... headers already sent ..login.php on line 16

... headers already sent ..login.php on line 16


2 razy wywala.

W loginie 16 linijka to tworzenie sesji:

Cytat
session_register("user");
session_register("pass");



Struktura strony wygląda tak że :

Na samym początku includuje headers.php które posiada na początku ob_start, natomiast na końcu strony jest ob_end_flush

Sprawdziłem i nie ma żadnych przerw, niechcianych znaków itp.


Dlaczego mi wywala te błędy? Zawsze mi działało z ob_start

Z góry dziękuje za pomoc
erix
No fajnie, że podałeś całą treść błędów i ~5 linijek wcześniej/dalej.
Webmasterr
Nie powinno być:

  1.  
  2.  



Na samiutkim początku pliku?
Działa?
erix
W życiu. Najpierw dowiedz się, do czego jest ta funkcja, dopiero potem radź, bo mu mieszasz.

Poza tym, session_register od paru lat jest zaniechana, już nie powinno się z tego korzystać.
Lethys
Plik header.php

  1. <?php ob_start(); ?>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta name="keywords" content="" />
  5. <meta name="description" content="" />
  6. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  7. <title>Memoranda by Free CSS Templates</title>
  8. <link href="style.css" rel="stylesheet" type="text/css" media="screen" />
  9. </head>
  10. <body>
  11. <div id="wrapper">
  12. <div id="page">
  13. <div id="page-bgtop">
  14. <div id="page-bgbtm">
  15. <div id="content">
  16.  


plik login.php

  1. <?php include"header.php"; ?>
  2. <div class="post">
  3. <h2 class="title">logowanie</h2><br>
  4. <div class="entry">
  5. <?php
  6. if (!$user || !$pass) {
  7. print "Proszę wypełnić wszystkie dane.";
  8. }
  9. include("config.php");
  10. $logres = mysql_num_rows(mysql_query("select * from players where user='$user' and pass='$pass'"));
  11. if ($logres <= 0) {
  12. print "Logowanie się nie powiodło. Jeśli nie masz jeszcze konta to zarejestruj się, jeśli masz sprawdź czy dobrze wpisałeś dane.";
  13. } else {
  14. print "&nbsp;<br>Witamy ponownie. Proszę kliknąć <a href=gazeta.php>tutaj</a> aby przejść dalej.";
  15.  
  16. $stat = mysql_fetch_array(mysql_query("select * from players where user='$user' and pass='$pass'"));
  17.  
  18. if(!($stat['id']==0))
  19. {
  20. $ip=$_SERVER['REMOTE_ADDR']; // pobieranie ip od usera
  21. $id=$stat['id']; //id uzytkownika (w moim przypadku wedlug rejestracji [nadane id])
  22. $czas = time();
  23.  
  24. $pytanie=mysql_query("SELECT * FROM online WHERE id='$stat[id]' ");
  25. $czyjest=mysql_num_rows($pytanie);
  26. if($czyjest==1) //sprawdzanie czy uzytkownik jest juz w tabeli licznika
  27. {
  28. mysql_query("UPDATE online SET (data='$czas') WHERE id='$stat[id]' "); //jezeli tak to nadpisujemy rekord
  29. }
  30. else
  31. {
  32. mysql_query("INSERT INTO online (id, ip, data) VALUES('$id', '$ip', '$czas')"); //jezeli tak to dodajemy rekord
  33. }
  34. }
  35.  
  36.  
  37.  
  38. }
  39. ?>
  40.  
  41. </div>
  42. </div>
  43.  
  44. <div style="clear: both;">&nbsp;</div>
  45. </div>
  46. <!-- end #content -->
  47. <?php include "sidebar2.php"; ?>
  48. <!-- end #sidebar -->
  49. <div style="clear: both;">&nbsp;</div>
  50. </div>
  51. </div>
  52. </div>
  53. <!-- end #page -->
  54. </div>
  55. <?php include "footer.php"; ?>
  56.  
  57. <!-- end #footer -->
  58. </body>
  59. </html>
  60. <?php ob_end_flush();?>
lessi
brak session start?
mkdes
Na bank musisz coś mieć przed ob_start .
ob_start daj do pliku login.php zaraz po pierwszym znaczniku <?php ob_start();
Include to już operacja przed ob_start
lessi
W takim razie możesz mieć problemy z kodowaniem w UTF-8. Zobacz tutaj:
http://forum.php.pl/index.php?showtopic=34835
http://forum.php.pl/index.php?showtopic=88676
http://mynthon.net/articles/php/utf-8
Fifi209
Zakoduj w utf-8 bez BOM
Lethys
Problem rozwiązany, pomogło staranne przekopiowanie kodu na czyste karty z kodowaniem UTF-8.

Dzięki wszystkim za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.