odświeżanie strony, zapis |
odświeżanie strony, zapis |
26.03.2006, 21:56:00
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) |
napisalem prosty skrypt dodawania komentarzy na stronke i mam pytanie jak zrobic zeby skrypt nie dodawal ciagle tygo samego po nacisnieciu odswieżania??
---- Posty będące duplikacją postów już zawartych w temacie, będą bez ostrzeżenia usuwane. Ma to zapobiedz tworzeniu się zbędnego śmietnika moderator -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
7.02.2011, 17:13:44
Post
#2
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 14 Dołączył: 2.06.2010 Ostrzeżenie: (0%) |
Odkopię trochę temat bo i ja zacząłem poszukiwać sposobu na zablokowanie ponownego wysłania danych. Więc opowiem o swoim sposobie jak wykryć, czy strona została odświeżona lub czy ktoś wycofał się na stronę, która również chce ponownie wysłać dane bo takie przypadki wg mnie zdarzają się częściej.
No to to rzeczy: 2. Kolejne to sprawdzam czy dane ciasteczko jest takie same jak zmienna przesłana przez formularz Kod <?php if (!isset($_COOKIE['krok'])) //sprawdzam czy ciasteczko kontrolujące istnieje { setcookie('krok', 0, time()+259200); //jeżeli nie przypisuje mu wartość 0 i ustawiam tam na jakiś okres czasu )czym dłużej tym lepiej) } //jeżeli formularz został wysłany otrzymamy zmienną $_POST['krok'] if ($_COOKIE['krok']==$_POST['krok']) { $refresh='nie';//jeżeli zmienna z formularza jest równa ciasteczku oznacza to, że nie było odświeżenia strony setcookie('krok', $_POST['krok']+1, time()+259200);i ustawiamy wartość ciasteczka o 1 większą } else { $refresh='tak'; } ?> ... //jakiś tam kod html <?php if ($refresh=='nie') //strona nie była odświeżana więc można przesłać dane { echo 'Przesłane dane: '.$_POST['krok']; } else { echo 'strona została odświeżona!!!'; //albo można pominąć blok else } ?> <form action="" method="POST"> <input type="hidden" name="krok" value="'.$_COOKIE['krok'].'">; <input type="text" name="jakiesdane"> <input type="submit"> </form> ... Jedno ciasteczko, a może nadać się na kilku podstronach, bo nawet wycofanie się na stronę, która musi przetworzyć dane nic nie da Oczywiście przydało by się by jeszcze strona sprawdzała czy ciasteczka są włączone ps. jest to skrypt, który sam wymyśliłem bo te sposoby, które podawaliście jakąś mi nie pasowały skrypt wpisany tutaj został z lekka okrojony od mojego, wprawdzie mówiąc został napisany od nowa i dlatego jakieś literówki mogą się znaleźć Ten post edytował radziopoke 7.02.2011, 17:14:41 |
|
|
Wersja Lo-Fi | Aktualny czas: 18.04.2024 - 20:33 |