![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 11.05.2005 Ostrzeżenie: (0%)
|
Witam!
Chcialbym po zapisaniu do bazy danych usunac zmienna post z formularza, tak by np po odswiezeniu strony nie mozna bylo mozna bylo jeszcze raz zapisac tych samych danych... unset na koncu nie pomaga bo jeszcze raz pobiera , usunac z tempa-ale jak?? Szukalem troche ale nie znalazlem odpowiedzi..... Pozdrawiam i czekam na jakies wskazowki Maciek |
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Sęk w tym, że odświerzenie powoduje powtórne wyslanie formularza. Usuwanie zmiennej tu nic nie da, gdyż jest ona na nowo wysyłana (tworzona). Musisz porobić jakieś zabezpieczenia, przed powtórnym wysyłaniem formularza
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 11.05.2005 Ostrzeżenie: (0%)
|
hmmm... no tak...ale jak?? (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
|
|
|
|
Post
#4
|
|
|
Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%)
|
Na upartego możesz przeładować stronę, za pomocą header" title="Zobacz w manualu PHP" target="_manual[b](Location: '.$_SERVER['PHP_SELF']);[b]
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 11.05.2005 Ostrzeżenie: (0%)
|
a to przeładowanie spowoduje ze.... (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? no bo na chlopski rozum to jeszcze raz pobierze z formularza....
|
|
|
|
Post
#6
|
|
|
Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%)
|
Można odświeżyć stronę po stronie usera przy pomocy javascript. Wtedy dane nie zostanę ponownie wysłane.
Kod <script type="text/javascript">window.location=document.URL;</script>
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 12.01.2005 Ostrzeżenie: (0%)
|
a jak ktos ma wylaczone js to nie za bardzo to zadziala:)
|
|
|
|
Post
#8
|
|
|
Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%)
|
Może inaczej skonstruuj wysyłanie formularza, zrób to bardzo user-friendly. Po naciśnięciu submita pokaże się komunikat że dane zostały wysłane i link do strony z formularzem. Trzeba liczyć na to że użytkownik postąpi w normalny sposób i kliknie link, a nie będzie odświeżał stronę.
Jeśli to nie wystarcza to trzeba usera przekierować na inną stronę i tyle. |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 1 086 Pomógł: 8 Dołączył: 10.12.2003 Ostrzeżenie: (0%)
|
Zrób dodatkowe pole input type="hidden" z value=<php echo time();?>
Potem sprawdzasz czy istnieje wpis w bazie z time = $_POST['time'] i tresc = $_POST['tresc'] (przykładowo) Jeżeli nie istnieje to dodajesz. |
|
|
|
Post
#10
|
|
|
Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%)
|
Przekierowuj za pomocą header("Location: ......."). Cofanie tego nie powoduje ponownego wysyłania formularza.
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%)
|
Też uważam, że powinieneś przekierować stronę za pomocą header ( 'Location:....' ).
Ewentualnie możesz wyświetlić komunikat, że dane zostały zapisane i za chwile nastąpi przekierowanie, takie rozwiązanie zastosowane jest np w forum phpBB lub XOOPS CMS. Ten post edytował NoiseMc 30.05.2005, 14:42:07 |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 11.05.2005 Ostrzeżenie: (0%)
|
Oki ! Dzieki!!
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 08:56 |