ďťż

[PHP] headers i cookies

       

Podstrony


telcocafe

Witam,
mam taki oto problem:
Próbuje wysłać cookies za pomocą funkcji setcookie, ale oczywiście wyskoczyć musi błąd ;]
oto kod w php jaki napisałem:

<?php session_save_path("sesje/"); session_start(); ob_start(); if(!isset($_COOKIE['USTAWIENIA'])){ $ustawienia="cos tam cos tam"; setcookie("USTAWIENIA", $ustawienia, time()+120960000000, "/") ; $_COOKIE['USTAWIENIA']=$ustawienia; } ?>

i teraz pojawia mi się taki oto błąd:

Warning: session_start() [function.session-start]: Cannot send session cookie -  headers already sent by (output started at /index.php:1) in /index.php on line 4 Warning: session_start() [function.session-start]: Cannot send session cache limiter -  headers already sent (output started at /index.php:1) in /index.php on line 4 Warning: Cannot modify header information - headers already sent by (output started at / index.php:1) in /index.php on line 9

z tego co zrozumiałem to php nie może wysłać cookies bo są już wysłane nagłówki... tylko najdziwniejsze jest to, że nic nie wysyłam przed cookies'em (no chyba, że się mylę), mógłby ktoś pomóc?
Użytkownik Zakaru edytował ten post 25 lipiec 2008, 09:00


Wysyłasz, tylko tego nie widać w pliku ;) Ściągni sobie Notepad++ (albo inny edytor, który potrafi zapisywać pliki w różnych formatach) i zapisz plik w formacie UTF-8 (without BOM).

no tak sie składa że używam notepad++ i mam kodowanie ustawione w UTF-8... więc nie trafiłeś ;)

W takim razie strzał nr 2 ;) Sprawdź czy przed "<?" nie masz spacji albo pustych linii.



nie ma, nie ma... juz sprawdzalem.
do 3 razy sztuka?:P;>

U mnie Twój kod działa. Używam lokalnego apache'a (chyba najnowszą wersję). Powiedz mi czy działa takie coś:

<?php session_start(); ?>
"ob_start();" powinno być na samym początku (przed sesją), a na końcu pliku "ob_end_flush();".
Użytkownik Kozack edytował ten post 25 lipiec 2008, 09:51
dziala dziala... tyle, ze skrypt teraz jest na home.pl i jakos nie chce dzialac :/

Trzeba od razu takie rzeczy pisać :P Sprawdzałeś czy na home.pl działa tylko "session_start"? Albo cały skrypt bez "ob_*? Może na serwerze nie masz katalogu "sesje" albo serwer nie pozwala na zapis danych sesji do innego katalogu niż np. "tmp"? Wywal "session_save_path" i sprawdź.
Użytkownik Kozack edytował ten post 25 lipiec 2008, 09:59
Niektóre edytory przy zapisywaniu w UTF-8 dodają na początku pliku 3 bajty, których normalnie nie widać "gołym okiem". Jest to tzw. BOM, którego PHP nie omija.
Więc albo poszukaj opcji zapisu bez BOM, albo spróbuj zapisać w innym kodowaniu.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.