Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Ignorowanie przeladowan strony a cookies
Forum PHP.pl > Forum > Przedszkole
Bojakki
Chce zrobic tak, ze wykonuje sie pewne zapytanie do bazy tylko raz dla jednego uzytkownika na jednej podstronie.
Napisalem taki kod:

  1. <?php
  2. setcookie('odw', 1, time() + 3600 * 3);
  3. if(!isset($_COOKIE['odw']))
  4. mysql_query("UPDATE table1 SET counter_temp = counter_temp + 1 WHERE id = '$id'");
  5. ?>


I teraz mam pytanie:

jak zorbic by nie tworzac kolejnych cookies w np. taki sposob (dla akzdej podstrony inna zmienna):

  1. <?php
  2. setcookie($zmienna, 1, time() + 3600 * 3);
  3. if(!isset($_COOKIE[$zmienna]))
  4. mysql_query("UPDATE table1 SET counter_temp = counter_temp + 1 WHERE id = '$id'");
  5. ?>


ale by zalatwic wiele sparwdzen w 1 pliku? Nie wiem, moze dopisuje jakas linijke tekstu i sparwdza czy w tym pliku jest albo cos takiego:)
peter13135
nie jestem w stanie cię zrozumieć, ale chyba lepiej byś to osiągnął za pomocą sesji
Bojakki
Wolalbym cookies:0

Chodiz o to, ze zapytaie wykonywac sie ma 1 raz dla 1 podstrony. Kazda podstrona to ina zmienna. Nie chce jednak tworzyc tyle plikow ile jest zmiennych, ale zeby to w 1 pliku cookie sie dzialo wszytsko:)
erix
Zrób sobie to w sesji, naprawdę...

Będziesz mógł wepchnąć, ile tylko zechcesz, a nie będziesz katował usera niepotrzebnymi ciachami.
Bojakki
Mogbym prosic o jakis przyklad kodu bo nie mam pomyslu na rozwiazanie tego wtaki sposob:)
erix
Przecież już napisałeś tongue.gif
  1. <?php
  2. if(!isset($_COOKIE['odw']))
  3. mysql_query("UPDATE table1 SET counter_temp = counter_temp + 1 WHERE id = '$id'");
  4. ?>


Poczytaj o sesjach, to będziesz wiedział, czym $_COOKIE zastąpić. [;
kkuba
Ciastka od sesji się właściwie niewiele różnią.

  1. <?php
  2. setcookie('nazwa', ...);
  3. ?>

zastępujemy po prostu
  1. <?php
  2. $_SESSION['nazwa'] = 'wartość';
  3. ?>


odczytywanie - tak jak ciacha, czyli
  1. <?php
  2. echo $_SESSION['nazwa'];
  3. ?>


Oprócz zapisem, sesje różnią się jedynie tym, że na początku pliku musimy dać session_start();

Ot cała filozofia ; )
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.