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 15.03.2008, 17:34:29
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:



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



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 15.03.2008, 17:36:14
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 winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
PawelC
post 15.03.2008, 17:36:14
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 15.03.2008, 17:38:08
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.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
SN@JPER^
post 15.03.2008, 17:38:24
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 15.03.2008, 17:40:04
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 15.03.2008, 17:43:29
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ł.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
envp
post 15.03.2008, 18:33:50
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 smile.gif
Go to the top of the page
+Quote Post
dr_bonzo
post 15.03.2008, 20:09:13
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".


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
windman
post 15.03.2008, 20:26:14
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 16.03.2008, 00:20:36
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 biggrin.gif


--------------------
Sygnaturka comes here.
Go to the top of the page
+Quote Post
szef
post 16.03.2008, 10:53:17
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 16.03.2008, 11:18:03
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 01:43