pawlo20
31.01.2013, 09:06:54
co tu zrobić żeby ten skrypt nie wysyłał emaila po odświeżaniu strony (bo chodzi oto że jak się wyśle wiadomość i się odświeża strone to wysyła puste wiadomości ) ?
<?php
$adres = "xxx@gmail.com";
$temat = "FORMULARZ";
$tresc = "Imie ".$_POST["imie"]." nazwisko: ".$_POST["nazwisko"]." email: ".$_POST["email"]." Wiadomość: ".$_POST["tresc"].".";
if(function_exists('mail') AND $_SERVER['REQUEST_METHOD'] == 'POST')
{
if(empty($_POST['imie'])) {
echo "<c>Wpisz imię</c>"; }
else if(empty($_POST['nazwisko'])) {
echo "<c>Wpisz nazwisko</c>"; }
else if(empty($_POST['email'])) {
echo "<c>Wpisz swój adres e-mail</c>"; }
else if(empty($_POST['tresc'])) {
echo "<c>Wpisz treść wiadomości</c>"; }
else
{
mail($adres, $temat, $tresc); echo "<d>Formularz został wysłany Dzięki</d>"; }
}
?>
lukasz_os
31.01.2013, 09:46:49
Po wysłaniu -wykonaniu funkcji mail() przekieruj za pomocą headers na stronę z komunikatem że wysłano email a nie wyświetl komunikat.
pawlo20
31.01.2013, 11:14:43
ale napis wysłano się poiawia pod formularzem to gdzie ma przekierowywać ?
if(isset($_POST['send'])) {
unset($_POST) // jak nie robisz przekierowania po wysłaniu }
pawlo20
31.01.2013, 11:28:39
w które miejsce to zamontować ?
Na początku sprawdzaj, a usuwaj jak już wyślesz. I zabezpiecz to jakoś.
pawlo20
31.01.2013, 11:50:58
a możesz jakoś jaśniej , o co chodzi co zabezpieczyć ?
Nie sprawdzasz danych w żaden sposób które przychodzą. Czy istnieją, jaką mają długość, czy są stringiem, czy email to email itd. I z tego co pamiętam, nie ma czegoś takiego jak znacznik <c> i <d>
Crozin
31.01.2013, 12:30:07
http://en.wikipedia.org/wiki/Post/Redirect/Get - usunięcie/wyczyszczenie tablicy $_POST nie ma najmniejszego sensu.
pawlo20
31.01.2013, 12:38:25
walidację mam w js , a nie mógł byś mi to poprawić bo ja nie umiem .
Walidacja w JS to nie walidacja. Zrób to po stronie PHP. Przykładów masz dużo na forum.
pawlo20
1.02.2013, 08:03:08
to w js nie dobra walidacja ?, a czemu cie tak dziwią te znaczniki <c> <d> to przecież działa .
Walicacja w JS to tylko atrapa. Powstała tylko po to, aby nie wysyłać 20 razy zapytań do serwera w przypadku błędu. Działa po stronie klienta i czasami ładnie wygląda.
Cytat
a czemu cie tak dziwią te znaczniki <c> <d> to przecież działa .
Pokaż mi w dokumentacji gdzie w (x)html(5) są znaczniki <c> i <d> oraz za co odpowiadają. To że coś działa, nie znaczy że jest dobre.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.