Jak zabezpieczyć się przed wielokrotnym wykonywaniem kodu po odświeżeniu strony, PHP Skrypty


[PHP] Jak zabezpieczyć się przed wielokrotnym wykonywaniem kodu po odświeżeniu strony?

0x01 graphic

Chcesz aby pewien kod został wykonany tylko raz, nawet gdy użytkownik będzie odświeżał stronę.

0x01 graphic

Są takie fragmenty kodu, które nie powinny być wykonywane częściej niż raz na jedną odsłonę strony lub raz na jakiś czas (np. raz na 30 minut). Przykładem może być licznik odwiedzin - nie powinien dodawać odsłon stron podczas wielokrotnego odświeżania strony.

Wykorzystajmy cookie - pozwoli nam to w prosty sposób zabezpieczyć się przed wielokrotnym wywołaniem fragmentu kodu PHP. Na samej górze skryptu umieść linijkę kodu:

<?

if ($_COOKIE["jest"]<>1) setcookie("jest","1",mktime()+3600);

?>

Powyższa linijka będzie ustawiała cookie ważne przez 3600 sekund od chwili uruchomienia kodu. Jeżeli cookie zostanie ustawione, zmienna $_COOKIE["jest"] będzie miała wartość 1, w przeciwnym razie nie będzie miała żadnej wartości, bo po 3600 sekundach cookie wygaśnie i zostanie zlikwidowane.

Wystarczy więc na samym początku strony sprawdzić czy cookie jest ustawione, a jak nie, to ustawić je na wartość 1.

Teraz w dalszej części strony, możesz przetestować wartość cookie. Jeżeli cookie nie zostało jeszcze ustawione, to można wykonać skrypt (tutaj jest to pokazanie napisu "ten napis zobaczysz tylko raz na 3600 sekund").

<?

if ($_COOKIE["jest"]<>1) {

echo "ten napis zobaczysz tylko raz na 3600 sekund";

}

?>

Pierwsze załadowanie strony ustawi cookie, ale nie będzie można go od razu odczytać. Pobrać wartość cookie można dopiero po ponownym przeładowaniu strony i wtedy napis nie pojawi się już.

Po 3600 sekundach cookie zostanie skasowane i wtedy ponownie będzie można wykonać fragment skryptu umieszczony w drugim fragmencie kodu, a więc napis pojawi się dopiero po godzinie. Zamiast napisu możesz wstawić własny kod programu lub wywołanie dowolnych funkcji, np. zwiększenia licznika odwiedzin.

A oto podobna realizacja zadania, ale cookie ustawiane jest z poziomu JavaScript. Nie trzeba wtedy pamiętać o ustawianiu cookie na samym początku skryptu w PHP - możesz kod umieścić np. w środku skryptu.

<?

if ($_COOKIE["jest"]<>1) {

echo '

<script language="javascript" type="text/javascript">

<!--

var wygasa=new Date();

wygasa=new Date(wygasa.getTime()+1000*3600);

document.cookie="jest=1; expires="+wygasa.toGMTString();

// -->

</script>

';

// tutaj wstaw skrypt wykonany tylko raz

echo "ten napis zobaczysz tylko raz na 3600 sekund";

}

?>

Tutaj liczba sekund musi zostać pomnożona przez 1000, ponieważ w JavaScripcie miarą czasu jest milisekunda. Zasada działania skryptu jest identyczna. Ustawiamy cookie na określony czas i wykonujemy skrypt. Następne wykonanie skryptu następi w momencie gdy ważność cookie wygaśnie.



Wyszukiwarka

Podobne podstrony:
Jak zabezpieczyć się przed przesiąkaniem gruntu
Jak zabezpieczyc się przed niebezpieczeństwem w czasie OOBE
Jak zablokować powtórne przetwarzanie formularzy przy odświeżaniu strony, PHP Skrypty
jak bronic sie przed eksmisja z mieszkania
Jak ustrzec się przed nierzetelnością Klienta za usługi hotelowe, Hotelarstwo, Hotel
Escrow Zabezpieczanie się przed ryzykiem
JAK OBRONIĆ SIĘ PRZED PSYCHOMANIPULACJĄ, Manipulacja - uwaga!
Być rodzicem – jak uchronić się przed błędami, szkoła, Godzina wychowawcza
Jak bronić się przed sektami, PSYCHOLOGIA, sekty
JAK BRONIĆ SIĘ PRZED AGRESJĄ UCZNIÓW, Resocjalizacja, Resocjalizacja
Jak bronic sie przed negatywna informacja z mediow
JAK BRONIĆ SIĘ PRZED ŚWIADKAMI JEHOWY (CZ. 2), NOWE !!!
JAK BRONIĆ SIĘ PRZED ŚWIADKAMI JEHOWY (CZ. 1), NOWE !!!
Jak chronić się przed wirusami komputerowymi, edukacja i nauka, Informatyka
Jak bronic się przed Świadkami Jehowy (CZ 2)
JAK BRONIĆ SIĘ PRZED ŚWIADKAMI JEHOWY (CZ. 1), - ◢◤ Różności
Org.bud.- cz.3, Jak chronic się przed budowlaną fuszerką, Beton na budowie
Praca semestralna na temat Jak ustrzec się przed przeziębieniem

więcej podobnych podstron