Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z cookie
Forum PHP.pl > Forum > Przedszkole
stefan_precz
Mam problem tego typu że, w galerii zdjęć jest mozliwość oceny no i aby ktoś sobie za duzo nie pooceniał smile.gif to zabezpieczone jest to coockie problem tkwi w tym ze nie jesli wysle coockie takie ogolne to potem innego zdjecia user nie oceni juz więc wysłam coockie w ten sposob

  1. <?php
  2. $punkty = $_POST['punkty'];
  3. include&#092;"config.php\";
  4.  
  5. $zapytanie=&#092;"UPDATE humor_zdjecia SET ilosc = ilosc+1 WHERE id = '\".$id.\"'\" or die(mysql_error());
  6. $wynik = mysql_query($zapytanie);
  7.  
  8. $zapytanie1=&#092;"UPDATE humor_zdjecia SET ocena = ocena+$punkty WHERE id = '\".$id.\"'\" or die(mysql_error());
  9. $wynik1 = mysql_query($zapytanie1);
  10.  
  11. setcookie(&#092;"ocena_$id\",$punkty,time()+48000); // tutaj wysylamy coockie z unikalnym id zdjecia
  12.  
  13.  
  14. header(&#092;"Location: smieszne-zdjecia.php?zdjecia=$id\");
  15. ?>


no i jak teraz to sprawdzać czy to cookie jest bo robiłem to tak

  1. <?php
  2. if (isset($_COOKIE['ocena_'.$id.'']))
  3. {
  4. echo &#092;"juz glosowales';
  5. }
  6. else {
  7. cos tam dalej
  8. }
  9.  
  10. ?>


no ale to rozwiązanie cały czas puszcza usera, tzn pozwala głosować w danym zdjęciu
id4
Witam

Ja zazwyczaj opieram się na tablicach - jest mi łatwiej tym zarządzać:
  1. <?php
  2. $days=365*24*3600;
  3. setcookie(&#092;"cookie_questionnaire[\".$questionnaire_id.\"]\",$questionnaire_id,time()+$days);
  4. ?>


Spróbuj w ten sposób:
  1. <?php
  2. setcookie(&#092;"ocena_\".$id,$punkty,time()+48000);
  3. ?>
stefan_precz
a gdyby zrobić tak

do cookie zapisuje ID ocenianego zdjęcia czyli

  1. <?php
  2. setcookie('ocena',$id,time()+48000);
  3. ?>


a potem w kodzie gdy ktoś wchodzi na konkretne zdjęcie gdzie numer zdjęcia jest przenoszony w zmiennej $zdjecia czyli user wybiera plik.php?zdjecia=numerzdjecia

to czy mozna z coockie odczytać jakie ID zostało zapisane czyli coś w stylu

  1. <?php
  2.  
  3. if (isset($_COOKIE['ocena'])){ //najpier sprawdzić czy jest cookie a potem odczytać jego zawartość czyli
  4.  
  5.  
  6. ?>


tylko nie wiem jak odczytać zawartość cookie aby potem przyrownać je do zawartości zmiennej $zdjecia jeśli będa takie same to nie daje sie userowi mozliwosci głosowania
id4
Witam

Jeśli tak zrobisz, to po każdym głosowaniu wartość ...
  1. <?php
  2. $_COOKIE['ocena']
  3. ?>

... będzie się zmieniała, a co za tym idzie nie będzie można głosować TYLKO na zdjecia na które zagłosowano ostatnio - na WSZYSTKIE pozostałe będzie można głosować nawet, jak już się wcześniej zagłosowało.
stefan_precz
już mam rozwiązanie, poniezej podaje dla przyszłych pokoleń:)

  1. <?php
  2. (!ereg($id,$_COOKIE['ocena'])) {
  3.  
  4.  
  5. //i tutaj zapytanie które doda ocene do bazy po czym...
  6.  
  7. setcookie(&#092;"ocena\",$_COOKIE['ocena'].\",$id\", time()+(3600*9999)); //do coockie dopisujemy ID ocenianego zdjęcia
  8.  
  9.  
  10.  
  11. header(&#092;"Location: plik.php?zdjecia=$id\"); // i wracamy do ocenianego zdjęcia
  12.  
  13. }
  14.  
  15. else{
  16. header(&#092;"Location: plik.php?zdjecia=$id\"); // jeśli już była ocena tego zdjecia to po prostu wracamy nie zliczając oceny
  17. }
  18. ?>
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.