Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z Cookie.
br-design.pl
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 1
Dołączył: 30.05.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Witam, pisze klase dla obsługi systemu ocenia na AJAXie, utknołem w jednym miejscu, z cookie, które sprawdza czy ktoś już głosował.

  1. <?php
  2. if($_COOKIE['glosowal_'.$model_name.'_'.$id] == true) {
  3. echo 'glosowal'; 
  4. } else {
  5.  
  6. // tutaj dodaje nowa ocene do bazy...
  7.  
  8. setcookie('glosowal_'.$model_name.'_'.$id, true, time()+60*60*24*15, null, 'strona.manga.pl'); // ustawiam cookie na 15 dni.
  9.  
  10. echo round($nowa_ocena, 1);
  11. }
  12. ?>


I tutaj jeszcze wszystko działa dobrze, cookie się ustawia odpowiednio ale kiedy chce potem sprawdzić czy ktoś już głosował (np. po to aby można było odrazu wyświetlać wyniki na stronach na których użytkownik już głosował) to cookie wydaje się wogole być nie ustawione.

  1. <?php
  2. if(($this->_allwaysShowRating == true) or ($_COOKIE['glosowal_'.$model_name.'_'.$id] == true)) {
  3. $code .= $rating;
  4. } else {
  5. $code .= 'Zagłosuj aby zobaczyć!';
  6. }
  7. ?>


Pomocy! Dzięki z góry.
Go to the top of the page
+Quote Post
thornag
post
Post #2





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

Ostrzeżenie: (0%)
-----


To tak. Zamisat glosowal_+model_name mozesz uzyc tablicy cookie.
  1. <?php
  2. setcookie ("cookie[three]", "cookiethree");
  3. setcookie ("cookie[two]", "cookietwo");
  4. setcookie ("cookie[one]", "cookieone");
  5. if (isset ($cookie)) {
  6.  while (list ($name, $value) = each ($cookie)) {
  7.  echo "$name == $value&lt;br>n";
  8.  }
  9. }
  10. ?>


W skrypcie odczytujacym cookie daj
  1. <?php
  2. echo "<pre>";
  3. print_r($_COOKIE);
  4. ?>


Pamietaj ze cookie sa widoczne dopiero po przeladowaniu strony, niestety nie wiem jak to dziala z AJAXem ale mysle ze bez przeladowania nie da rady.

Sprobuj wiec w AJAXie ustawic zmienna ktora bedzie blokowala mozliwosc glosowania dwukrotnie w tym samym przeladowaniu a po przeladowaniu to juz sie cookie tym zajmnie.

Ten post edytował thornag 3.10.2006, 16:05:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 01:51