Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> odświeżanie strony, zapis
skowron-line
post 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/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
radziopoke
post 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 smile.gif
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 smile.gif 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źć smile.gif

Ten post edytował radziopoke 7.02.2011, 17:14:41
Go to the top of the page
+Quote Post

Posty w temacie
- skowron-line   odświeżanie strony, zapis   26.03.2006, 21:56:00
- - TomASS   Możesz albo zablokować możliwość dwóch postów tego...   26.03.2006, 22:24:54
- - mike_mech   Ponowny zapis do bazy po odświeżeniu strony   27.03.2006, 10:09:24
- - huntercs   w prosty sposób można to osiągnąć, mianowicie: np....   27.03.2006, 11:23:36
- - skowron-line   a jezeli chcem zrobic to przy zapisie do pliku .tx...   27.03.2006, 21:35:11
- - erix   to nie ma znaczenia, co robisz po submicie formula...   28.03.2006, 07:27:16
- - nospor   Cytat(huntercs @ 2006-03-27 12:23:36)w prosty...   28.03.2006, 07:34:02
- - skowron-line   to chyba najlepszym sposobem jest po nacisnieci su...   28.03.2006, 11:11:27
- - nospor   Ja to robię jeszcze inaczej. PRzy tworzeniu formu...   28.03.2006, 12:14:16
- - skowron-line   a do bazy danych to wymyslilem ze moge wyciagnac o...   28.03.2006, 20:52:50
- - huntercs   tylko po co mieszać do tego bazę? dodaktowe zapyta...   28.03.2006, 23:01:57
- - Kuziu   A nie prościej zrobić np. dodanie commenta po czym...   28.03.2006, 23:15:40
- - mike_mech   Cytat(huntercs @ 2006-03-28 23:01:57)tylko po...   29.03.2006, 08:56:34
- - nospor   CytatWystarczy nałożyć kluch UNIQUE.Ale nalozysz k...   29.03.2006, 08:59:38
- - mike_mech   Cytat(nospor @ 2006-03-29 08:59:38)a co jesli...   29.03.2006, 09:12:59
- - nospor   dalej sie z tobą nie zgadzam. Istnieją przecież ta...   29.03.2006, 09:18:12
- - mike_mech   Ładnie, bardzo ładnie. Ja to robię tak:[PHP] pobi...   29.03.2006, 09:30:15
- - nospor   A że ja upierdliwy jestem... A co w przypadku, gdy...   29.03.2006, 10:00:19
- - skowron-line   ja napisalem cos takiego i dziala [PHP] pobierz, p...   29.03.2006, 10:00:31
- - nospor   ale o ile dobrze wczytuje sie w ten kod, to ty zro...   29.03.2006, 10:20:24
- - skowron-line   To ma byc tak: wpisujesz jakis text i naciskasz su...   29.03.2006, 10:38:41
- - nospor   Cytatwpisujesz jakis text i naciskasz submit wtedy...   29.03.2006, 10:41:49
- - skowron-line   nospor zwracam honor przeanalizowalem ten skrypt i...   30.03.2006, 10:16:35
- - Krisu   Da sie zrobic jakos tak, zeby dodaj i zapisz bylo ...   31.03.2006, 19:55:20
- - tes   nospor, a mógłbyś napisać jak potem z tej sesji wy...   11.04.2006, 01:21:35
- - nospor   @tes ja go nie wyrzucam. Jak pisalem, generuję uni...   11.04.2006, 06:47:36
- - Pilsener   Porównać IP gościa i czas - moim zdaniem najlepszy...   19.04.2006, 08:31:30
- - free   Ja stosuje prosta metode, poprostu za pomocą JS lu...   16.11.2006, 13:44:16
- - Cypherq   O rany, zaczęliście całą religię do tego problemu ...   19.04.2007, 14:42:07
- - Sedziwoj   Może większego nie, ale jak ja szybko piszę i odpo...   19.04.2007, 15:41:41
- - l0co   Niepotrzebnie zakładałem nowy wątek - więc dopisuj...   6.09.2007, 12:58:17
- - WebCM   Jeżeli chcemy tylko ochronić skrypt prze...   30.12.2007, 14:52:26
- - nospor   źle. Ajax/js nie jest rozwiązaniem na p...   30.12.2007, 14:57:21
- - be2k   to moze i ja dorzuce swoje 3 grosze. # rozwiazan...   26.01.2008, 12:50:49
- - mroczek   Jeżeli chcemy zrobić to za pomocą sesji to sugeruj...   9.11.2008, 13:23:14
- - mlattari   hmm... najprościej to chyba przed przetwarzaniem i...   27.02.2009, 01:31:26
- - piotr94   u mnie problem znika wraz z samym tokenem - za każ...   12.11.2009, 16:39:52
- - Thorang Hoog   Hmm jak tak czytam wasze wypowiedzi to o mało nie ...   17.12.2009, 23:28:55
- - andycole   Temat trochę leciwy, ale jako że przyklejony to ch...   1.10.2010, 22:55:14
- - radziopoke   Odkopię trochę temat bo i ja zacząłem poszukiwać s...   7.02.2011, 17:13:44
- - AndyPSV   dorzuce jeszcze do wypowiedzi wszystkich - prosty ...   11.03.2011, 12:08:54
- - picios   Stare już, ale dodam od siebie: [PHP] pobierz, pla...   6.06.2011, 23:13:50
- - olszam   stary temat ale może coś od siebie raz dam [PHP] p...   11.10.2012, 15:52:08
- - mruz   Mam problem przy wysyłaniu takiego formularza z up...   16.03.2013, 20:40:22
- - CuteOne   [PHP] pobierz, plaintext $_SESSION['crf'] = md5...   16.03.2013, 21:01:43
- - mruz   Dzięki @CuteOne, pomogło.   16.03.2013, 21:23:27
- - Khartas   Mam podobny problem z powtarzaniem wpisów. Gdzie i...   31.03.2013, 23:15:17
- - gitbejbe   odgrzewam kotleta. co do @up. to po 17stej linijc...   20.06.2013, 10:14:36
- - Damonsson   Niesamowitą głupotę, to napisałeś, co najwyżej. Po...   20.06.2013, 10:24:22


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 Wersja Lo-Fi Aktualny czas: 18.04.2024 - 20:33