Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt nie widzi $_COOKIE..
Forum PHP.pl > Forum > PHP
krzyzak_p
Witam,
mam problem z tablica $_COOKIE.. A mianowicie, skrypt tworzy COOKIE, tak jak ma tworzyc i to akurat dziala bez zarzutu (pod FF sprawdzam w ciachach ze takie jak mial stworzyc faktycznie zrobil), ale juz skrypt od sprawdzania czy ciasteczko istnieje nie widzi go wogole;/ Zastanawiam sie czy to wina tego skryptu, czy jakis glebszy problem?

Plik, ktory sprawdza czy cookie istnieje:
  1. <?php
  2. include_once('conf.php');
  3. $weryfikacja=false;
  4. print_r($HTTP_COOKIE_VARS);
  5. if(isset($_COOKIE[$nazwa_serwisu]))
  6. {
  7. $cookie=$_COOKIE[$nazwa_serwisu];
  8. echo $cookie . '<br />';
  9. $cookie=explode("|",$cookie);
  10. $uzytkownik = $cookie[0];
  11. echo $uzytkownik;
  12. $q = "SELECT cookie,id,nick FROM uzytkownicy WHERE nick='$cookie[0]'";
  13. $okcookie=$r['cookie'];
  14. $dane[0]=$r['id'];
  15. $dane[1]=$r['nick'];
  16.  
  17. if($cookie[1]<>$okcookie)
  18. {
  19. setcookie($nazwa_serwisu, "zly_cookie", time()-36000);
  20. header("Location: index.php?id=$id&blad=1&zle=cookie");
  21. echo 'cos..';
  22. }
  23. else
  24. {
  25. $weryfikacja=true;
  26. echo 'cookie ok';
  27.  
  28. }
  29. }
  30. ?>

Plik conf.php sluzy do laczenia sie z baza..
FF wyswietla, ze istnieje cookie o zawartosci krzyzakp22%7C85d96431ecafe0784454686d3d6ce7e8, i nazwie takiej jak $nazwa_serwisu (to akurat dobrze includuje, wyswietla wartosc $nazwa_serwisu jak trzeba). Ale funkcja print_r(); juz nie dziala wogole, wyswietla jedynie
Kod
Array()

czyli tak jakby nie bylo zadnego cookie.. a tymczasem istnieje..

Ktos wie moze na czym problem polega? Bo glowie sie nad tym od kilku godzin, probowalem juz roznych rzeczy i nadal nic;/
batman
Ciasteczka są widoczne dopiero po odświeżeniu strony. Tak więc jeśli tworzysz ciastko, a następnie chcesz je odczytać, to efekt jest taki jak opisałeś.
Inną rzeczą jaką musisz sprawdzić, to czas wygaśnięcia ciasteczka.
No i na koniec, jeśli używasz mod_rewrite, to sprawdź, czy ciasteczko jest zapisywane w odpowiednim miejscu.

edit
Zmień $HTTP_COOKIE_VARS na $_COOKIE.
krzyzak_p
wiem, pamietam ze COOKIE jest widczone dopiero po dswiezeniu strony.. Calosc polega na tym ze skrypt wogole nie widzi ciastek, odswiezalem go kilkanascie razy, teraz tez sprawdzilem czy samo ciacho jest zapisane (i jest nadal zapisane..) i odpalenie powyzszego skryptu nadal wyswietla tylko Array() ....
Co do mod_rewrite to nie uzywam go tutaj, wiec nie w tym rzecz niestety...
to HTTP_COOKIE_VARS zmienilem juz wczoraj na COOKIE, wczoaj juz to zmienialem ale tez nic nie dawalo... Zmienilem na HTTP_COOKIE_VARS, ze wzgeldu ze zmienne globalne sa wlaczone na serwerze i kombinowalem co moze byc nie tak, tez z tej przyczyny.
batman
A nie masz przypadkiem błędu na stronie? Setcookie działa na takiej samej zasadzie jak header. Tzn. użycie tej funkcji po wysłaniu czegokolwiek do przeglądarki spowoduje zgłoszenie warning-a, a samo ciasteczko nie zostanie zapisane.
Matiash
poczytaj na pl.php.net o argumencie:
string $path
dla setcookie moze tam sie znajduje blad 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.