Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zmniejszanie ilości cookie
Raito
post
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 19
Dołączył: 27.04.2014

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


Witam

Mam skrypt który wyświetla 5 bannerów , pierwsze tak żeby się nie powtórzyły, a potem losowo, dane o wyświetlonych bannerach są zapisane w 5 cookie. Czy da się zapisać te informacje w 1 cookie? A jeśli tak, to jak?
  1. $znalezione = FALSE;
  2. for($i=1; $i<=5; $i++){
  3. if(!isset($_COOKIE["banner".$i])){
  4. $tab[]=$i;
  5. $znalezione = TRUE;
  6. }
  7. }
  8. if(!($znalezione)){
  9. for($i=1;$i<=5;$i++){
  10. $tab[$i-1] = $i;
  11. }
  12. }
  13. $nr = $tab[rand()%count($tab)];
  14. setcookie("banner".$nr, 1, time()+25920000);


Ten post edytował Raito 17.07.2014, 12:03:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Normalnie. Jedno cookie 'banner' które będzie zawierać zserializowaną tablicę.


--------------------
Go to the top of the page
+Quote Post
Raito
post
Post #3





Grupa: Zarejestrowani
Postów: 156
Pomógł: 19
Dołączył: 27.04.2014

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


Chodzi mi o to żeby cookie banner się tak jakby aktualizowało. Da się to zrobić też serializacją?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


- Zapisujesz do Cookie tablicę
- Odczytujesz z cookie tablicę
- Działasz na tablicy
- Zapisujesz do Cookie Tablicę
- Przy odświeżeniu wróć do pkt.1
Go to the top of the page
+Quote Post
Raito
post
Post #5





Grupa: Zarejestrowani
Postów: 156
Pomógł: 19
Dołączył: 27.04.2014

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


I wszystko stało się jasne smile.gif Dzięki

A jednak nie wszystko... Próbuję to zrobić i nie daję rady. Starałem się to zrobić według twoich wskazówek i wyszło mi coś takiego:

  1. $znalezione = FALSE;
  2.  
  3. for($i=1; $i<=5; $i++){
  4.  
  5. if(!isset($_COOKIE["banner"])){
  6. $tab[]=$i;
  7. $znalezione = TRUE;
  8. }
  9. }
  10.  
  11. if(!($znalezione)){
  12. for($i=1;$i<=5;$i++){
  13. $tab[$i-1] = $i;
  14. }
  15. }
  16.  
  17. $nr = $tab[rand()%count($tab)];
  18.  
  19. setcookie("banner", serialize(array()), time()+25920000);
  20.  
  21. $array = unserialize($_COOKIE["banner"]);
  22.  
  23. array_push($array, $nr);
  24.  
  25. setcookie("banner", serialize($array), time()+25920000);
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1.  
  2. $nr = 0;
  3. $tab = isset($_COOKIE["banner"]) ? unserialize($_COOKIE["banner"]) : array();
  4. for($i=1; $i<=5; $i++){
  5. if(!isset($tab[$i])){
  6. $nr = $i;
  7. break;
  8. }
  9. }
  10.  
  11. if(!$nr){
  12. $nr = rand(1,5);
  13. }
  14.  
  15. $tab[$nr]=1;
  16.  
  17. setcookie("banner", serialize($tab), time()+25920000);
  18. echo $nr;

Tylko pamietaj by usunąć ciastko banner przed pierwszym odpaleniem tego skryptu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Raito
post
Post #7





Grupa: Zarejestrowani
Postów: 156
Pomógł: 19
Dołączył: 27.04.2014

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


Dzięki, działa smile.gif
Mógłbyś wytłumaczyć mi linię 3, tzn. wiem że ? oznacza skrócony warunek if, ale jak to przeczytać?
Go to the top of the page
+Quote Post
Turson
post
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Najpierw masz if czyli isset() potem po ? jest jeżeli warunek jest prawdziwy a po : jest else
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 06:12