![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 30.12.2008 Ostrzeżenie: (0%)
|
Witam,
Mam prosty formularz internetowy i bym chciał go zabezpieczyć przed ponownym wysłaniu po odświeżeniu strony. I bym chciał jeszcze dać, że trzeba wypełnić wszystkie dane przed wysłaniem. Prosiłbym o pomoc lub ewentualne linki |
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
bylo wiele razy
http://forum.php.pl/index.php?showtopic=44...t=0&start=0 |
|
|
|
Post
#3
|
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa |
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 30.12.2008 Ostrzeżenie: (0%)
|
ja mam formularz internetowy, co wysyła wiadomość na e-mail z przeglądarki, kod tego formularza to:
<?php if (count($_POST)) { ////////// USTAWIENIA ////////// $email = 'mail'; // Adres e-mail adresata $subject = 'test'; // Temat listu $message = 'Wysłano'; // Komunikat $error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu $charset = 'iso-8859-2'; // Strona kodowa ////////////////////////////// $head = "MIME-Version: 1.0\r\n" . "Content-Type: text/plain; charset=$charset\r\n" . "Content-Transfer-Encoding: 8bit"; $body = ''; foreach ($_POST as $name => $value) { if (is_array($value)) { for ($i = 0; $i < count($value); $i++) { $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n"; } } else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n"; } echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error; } else { ?> <form action="?" method="post"> Treść formularza <input type="submit" value="Odbieram" /> <input type="reset" value="Resetuj" /> </form> <?php } ?> I to chce zabezpieczyć, że jeżeli już ktoś wyśle i dostanie komunikat "Wysłano" i kliknie odswiez, zeby ta wiadomość nie była do mnie ponownie wysłana |
|
|
|
Post
#5
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Cytat "Wysłano" i kliknie odswiez, zeby ta wiadomość nie była do mnie ponownie wysłana Do formularza, jako parametr dorzuć token, czy coś w tym stylu. Przy wysyłaniu sprawdzaj, czy istnieje w sesji, jeśli jest - nie wysyłaj, jeśli nie ma - dodaj do sesji:
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 30.12.2008 Ostrzeżenie: (0%)
|
ok, token dodam, ale to i tak nic nie pomoże, ponieważ jeżeli go poprawnie wpisze i później będzie klikał odśwież to i tak wyśle ponownie
|
|
|
|
Post
#7
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Ale sprawdzasz w sesji: przed wysłaniem tokena nie ma, a po wysłaniu jest. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Spróbuj sam, potem dopiero pytaj. |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 30.12.2008 Ostrzeżenie: (0%)
|
ja już tak robiłem wcześniej i nic mi nie wychodziło (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) i nie chce żeby był token, bez niego żeby się obeszło
|
|
|
|
Post
#9
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
W moim poprzednim poscie podalem linka, gdzie problem byl doglebnie omówiony. Widze ze nie zajrzales - zamykam wiec, bys mial czas zajrzec
|
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 10:46 |