Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Po naciśnieciu f5 pokazuje się komunikat, jak go usunąć?
SN@JPER^
post
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Witam,

mam jeden problem, otóż skrypt wyświetli komunikat "Wiadomość została wysłana", czyli, że wszystko przebiegło prawidłowo:

(IMG:http://img411.imageshack.us/img411/6536/screenshot005vj1.jpg)

Jednakże po naciśnięciu f5 oraz po naciśnięciu w okienku, który wyskoczy OK dodany zostanie następny rekord:

(IMG:http://img406.imageshack.us/img406/9241/screenshot006iq1.jpg)

Jak zrobić, aby po naciśnięciu f5 nie pokazywało się okienko?


Proszę o sugestie i porady, pozdrawiam.
Go to the top of the page
+Quote Post
Piniek
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


to jest informacje o tym ze po odswiezeniu stronu przeslesz po raz drugi dane POST usunac sie tegro rsczej nie da (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
PawelC
post
Post #3





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Tak już jest, ja też tak mam i wielu innych tak ma. To samo Ci wyskoczy jak dodasz rekord do bazy etc... i zrobisz wstecz. Z tym nic niezrobisz.
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Nie możesz usunąć tego komunikatu. Przeglądarka informuje Cie, że po odświeżeniu ponownie wysłane zostanie żądanie POST.
Jeśli nie chcesz widzieć komunikatu, to po odebraniu zmiennych z formularza i zapisaniu ich do bazy/pliku, użyj funkcji header, która przekierujesz użytkownika na stronę z informacją "Wiadomość wysłana". Sposób ten uchroni Ciebie również przed kilkukrotnym dodaniem do bazy tych samych danych.
Go to the top of the page
+Quote Post
SN@JPER^
post
Post #5





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Hmm, a gdyby napisać kod, który nie pozwoli robić tego samego działania przez x czasu?
Go to the top of the page
+Quote Post
PawelC
post
Post #6





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Lol to jest komunikat przeglądarki którego nie usuniesz. Zrób tak jak powiedział batman
Go to the top of the page
+Quote Post
batman
post
Post #7





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




SN@JPER^
Nie masz możliwości dokonywania zmian w zachowanie przeglądarki. Żaden skrypt nie zrobi tego, ponieważ tak to zostało skonstruowane. Użyj funkcji header, to komunikat nie będzie się pojawiał.
Go to the top of the page
+Quote Post
envp
post
Post #8





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

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


Jedyne co Cie uratuje, to wyslanie danych ajaxem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Ile razy batman ma powtarzac rozwiazanie?

Po dodaniu rekordu robisz
  1. <?php
  2. header( "Location: /wiadomosc/pokaz/123" );
  3. ?>

dzieki czemu po wyslaniu formularza zostaniesz przekierowany na nowy url, ktory zostanie pobrany GET'em a nie POSTem, i kazdy refresz wykona ponownie "pokaz wiadomosc 123" zamiast "wyslij nowa wiadomosc".
Go to the top of the page
+Quote Post
windman
post
Post #10





Grupa: Zarejestrowani
Postów: 184
Pomógł: 13
Dołączył: 7.01.2008

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


Gdzieś na forum było...

generujesz losowy ciąg i wstawiasz go jako ukryte pole input.
Przed dodaniem rekordu sprawdzasz, czy zmienna sesyjna 'jakastam' ma wartośc ukrytego pola, gdy nie to dodajesz rekord i ładujesz ten ciąg do tej zmiennej, gdy wciśniesz f5 już nie doda ci nowego rekordu, bo w zmiennej sesyjnej będzie już ten wygenerowany ciąg.

Chyba nospor cos o tym pisał.

Pozdrawiam
Go to the top of the page
+Quote Post
crackcomm
post
Post #11





Grupa: Zarejestrowani
Postów: 184
Pomógł: 6
Dołączył: 23.02.2008
Skąd: Katowice

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


Cytat(dr_bonzo @ 15.03.2008, 20:09:13 ) *
  1. <?php
  2. header( &#092;"Location: /wiadomosc/pokaz/123\" );
  3. ?>

najlepsze rozwiazanie wg. mnie
i prosze nie powtarzac sie 1000 razy (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
szef
post
Post #12





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.02.2007
Skąd: Rumia

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


Możesz przed wysyłaniem formularza tworzyć klucz np
  1. <?php
  2. uniqid(rand(), true);
  3. ?>
i dodawać go do bazy. Po wciśnięciu F5 sprawdzać czy taki klucz już istnieje (ten sam formularz zostanie przesłany z tym samym kluczem) jeśli klucz istnieje to wywali komunikat o błędzie.

Pozdrawiam
Go to the top of the page
+Quote Post
Sabistik
post
Post #13


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

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


  • przenoszę na przedszkole.
  • + dostaje batman.
  • jak jeszcze raz ktoś poda to samo rozwiązanie dostanie warna.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 06:14