Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nagłówek już wysłany - próbowałem wszystkiego! Pomocy!
Forum PHP.pl > Forum > PHP
fiodi191
Cześć wszystkim :). Mam mały problem, a najgorsze, że nie wiem czego on dotyczy...
Może od początku wyjaśnię. Robię ostatnio pewną stronę wykorzystującą pliki cookies oraz przekierowanie header("Location ..."). Na serwerze lokalnym (EasyPHP) testowałem moją stronę i wszystko działało świetnie, ale gdy wstawiłem ją do internetu po prostu nie działa : <. Próbowałem zastosować ob_flush()... Zmiana wersji PHP nie pomaga (chociaż nie sądzę, żeby PHP 5.4 nie obsługiwał cookies, no ale próbowałem też tak). Coś się dowiedziałem, że trzeba zmienić uprawnienia pliku, bo inaczej cośtam - dałem na próbę wszystkie możliwe uprawnienia (777) i też nic! Coś kombinowałem w php.ini i udało mi się włączyć pokazywanie błędów. Wyskakuje jakiś błąd, który mówi, ze nagłówek już został przesłany (Warning: Cannot modify header information - headers already sent by (output started at /homepages/4/d496393136/htdocs/test/test.php:8) in /homepages/4/d496393136/htdocs/test/test.php on line 10). Próbowałem wszystkich metod znalezionych w internecie i nic ; <. Tutaj kod źródłowy:
  1. <!DOCTYPE HTML>
  2. <meta charset="utf-8">
  3. <title>Strona testowa</title>
  4. </head>
  5. <?php
  6. $value = 'dziala';
  7. setcookie("TestCookie", $value, time()+3600) or die('Nie można załadować plików cookie'); /* dla pewności, że nie ma błędów skopiowane z <a href="http://php.net/manual/en/function.setcookie.php" target="_blank">http://php.net/manual/en/function.setcookie.php</a> */
  8. $dziala = $_COOKIE['TestCookie'];
  9. echo $dziala;
  10. ?>
  11. </body>
  12. </html>

Jest to przykładowy kod, który umieściłem pod adresem http://test.hiboux.pl/test.php , żeby łatwiej wyłapać błąd. Nie ma opcji na błędy składni, bo testowałem na serwerze lokalnym i działa (poza tym skopiowałem z oficjalnego manuala PHP).

Błagam pomóżcie mi!
P.S. Tak, próbowałem też dodawać output_buffering = on w php.ini i nie - nie działa.
com
  1. <?php
  2. $value = 'dziala';
  3. setcookie("TestCookie", $value, time()+3600) or die('Nie można załadować plików cookie'); /* dla pewności, że nie ma błędów skopiowane z <a href="http://php.net/manual/en/function.setcookie.php" target="_blank">http://php.net/manual/en/function.setcookie.php</a> */
  4. $dziala = $_COOKIE['TestCookie'];
  5.  
  6. ?>
  7. <!DOCTYPE HTML>
  8. <html>
  9. <head>
  10. <meta charset="utf-8">
  11. <title>Strona testowa</title>
  12. </head>
  13. <body>
  14. <?php echo $dziala; ?>
  15. </body>
  16. </html>


nie możesz nic przesyłać do przeglądarki po utworzeniu już nagłówka wink.gif lub używasz ob_flush() ale pewnie źle go zastosowałeś wink.gif
fiodi191
Czekaj - spróbuję tego smile.gif. A jak w takim razie użyć ob_flush() w tym przypadku poprawnie? : >.

Dzięki WIELKIE za pomoc.

@edit: a nie wiesz może czemu dokładnie ten sam kod działał na serwerze lokalnym biggrin.gif?

Niestety : <. Twój kod nic nie pomógł. Błąd ten sam tylko linijka inna biggrin.gif. Warning: Cannot modify header information - headers already sent by (output started at /homepages/4/d496393136/htdocs/test/test.php:1) in /homepages/4/d496393136/htdocs/test/test.php on line 3
Nie można załadować plików cookie
com
jakie masz kodowanie ustawione? pewnie wkradł sie bom smile.gif
sowiq
Bardziej spodziewałbym się wklejonej spacji w pierwszej linijce, przed otwarciem znacznika PHP (tak jak w Twoim kodzie wink.gif )
com
sowiq faktycznie może być to.. spieszyłem się i wkradły się przy wklejaniu wink.gif poprawiam
  1. <?php
  2. $value = 'dziala';
  3. setcookie("TestCookie", $value, time()+3600) or die('Nie można załadować plików cookie'); /* dla pewności, że nie ma błędów skopiowane z <a href="http://php.net/manual/en/function.setcookie.php" target="_blank">http://php.net/manual/en/function.setcookie.php</a> */
  4. $dziala = $_COOKIE['TestCookie'];
  5.  
  6. ?>
  7. <!DOCTYPE HTML>
  8. <html>
  9. <head>
  10. <meta charset="utf-8">
  11. <title>Strona testowa</title>
  12. </head>
  13. <body>
  14. <?php echo $dziala; ?>
  15. </body>
  16. </html>

wink.gif

btw nie wiem ale albo zmieniłeś coś na własną rękę, ale "demo" u Ciebie na serwerze przecież działa ;>
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.