Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z ciasteczkami
Forum PHP.pl > Forum > PHP
a_urbi
Witam, mam taki problem znajomy wymyślił sobie żeby było parę obrazów tła i losuje się jedno dla danego odwiedzającego.
napisałem taką prostą funkcję:
  1. if ( $_COOKIE["Tlo"] == null ) {
  2. $arr = array('1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg');
  3. $tlo = $arr[array_rand($arr)];
  4. setcookie('Tlo', $tlo);}


Poźniej w body tylko wpsuje numer tła które ma być wyświetlone. Problem polega na tym, że po odwiedzeniu strony nie wyświetla się tło dopiero po jej odświeżeniu. Dlaczego tak się dzieje?
Mlodycompany
1. To czy ciastko jest puste sprawdził bym funkcją empty()
2. Wysłane ciastko dostępne jest dopiero to odświeżeniu strony, więc bez odświeżenia samo się w tablicy $_COOKIE nie znajdzie, ale można to prosto odejść dodając element bezpośrednio do tej tablicy
a_urbi
To jak w takim razie napisać funkcje która losuje tło i zostawia je do zamknięcia strony?
mat-bi
użyj sesji

toaspzoo
w argumencie funkcji setookie musisz wpisac (nazwa, wartosc, czas!);
a_urbi
  1. if ( $_COOKIE["Tlo"] == null ) {
  2. $arr = array('1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg');
  3. $tlo = $arr[array_rand($arr)];
  4. $_COOKIE["Tlo"] = $tlo;
  5. }


Zrobiłem tak jak powyżej bez setcookie i od razu cookie ma swoją wartość bez odświeżania strony.
Mlodycompany
w tym momencie nie korzystasz z cookies tylko z tablicy do której one są wczytywane. Równie dobrze możesz korzystać z globalnej tablicy sesji, post, get i każdej innej zmiennej globalnej jak i nieglobalnej. Z ciasteczkami to nie ma nic wspólnego!
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.