<?php
// sprawdzamy, czy zmienna $submit jest pusta
if (empty($_POST['submit'])) {
// wyswietlamy formularz
echo "Napisz e-maila do autora tej strony:
| Treść wiadomości | |
| Imię, nazwisko lub nick | |
| Adres e-mail | |
| | |
“; } // sprawdzamy, czy zmienne przesłane z formularza nie są puste elseif (!empty($_POST[‘tresc’]) && !empty($_POST[‘imie’]) && !empty($_POST[‘email’])) { // jeżeli powyższy warunek jest spełniony tworzona jest wiadomosć // zmienna $message zawiera tresć wiadomosci $message = “Treść wiadomości:\n$_POST[tresc]\n\nWysłał: $_POST[imie]\ne-mail: $_POST[email]”; // zmienna $header zawiera przede wszystkim adres zwrotny $header = “From: $_POST[imie] <$_POST[email]>”; // funkcja mail() za pomoca której wiadomosć zostanie wysłana @mail(“moj e-mail@gmail.com”,“Wiadomość ze strony www.xxx.pl”,”$message","$header") or die(‘Nie udało się wysłać wiadomości’); // wy¶wietlenie komunikatu w przypadku powodzenia echo " Dziękujemy, wiadomość została wysłana poprawnie! Na pewno odpiszemy w ciągu 48h."; } // lub w przypadku nie wypełnienia formularza do końca else echo “Wypełnij wszystkie pola formularza”; ?>[/code] Czy mógłby pomóc mi ktoś przerobić ten kod za pomocą tego kodu:
[code]// w zmiennej $email mamy e-mail do sprawdzenia if (preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9._-] +)+$/" ,$email)==true) echo ‘e-mail poprawny’; else echo ‘to nie jest poprawny adres e-mail’;
żeby sprawdzał poprawność e-mail.
Gdy e-mail byłby zły pojawił by się stosowany napis i powrót do strony z treścią żeby ta treść się zachowała a nadawca mógł poprawnie wpisać e-mail.
Proszę o pomoc, ponieważ kompletnie nie znam się na php.
prosty to fakt, ale niestety zawodny i to bardzo. zbudowanie prawidłowego wyrażenia regularnego które by odpowiednio walidowało adresy emailowe wcale nie jest prostym zadaniem. co prawda wyrażenia takie jak tutaj są moim zdaniem strasznie przesadzone już, o tyle warto chociaż sprawdzić czy wyrażenie zawiera poprawne znaki (przykładowo to podane przez patryk_patrol , przepuści przecinki czy średniki co jest niedozwolone)
Nie chciało mi się przerabiać tego na komunikaty, sprawdza czy ktoś wpisał poprawny adres.
<?php
// sprawdzamy, czy zmienna $submit jest pusta
if (empty($_POST['submit'])) {
// wyswietlamy formularz
echo "Napisz e-maila do autora tej strony:
| Treść wiadomości | |
| Imię, nazwisko lub nick | |
| Adres e-mail | |
| | |
“; } // sprawdzamy, czy zmienne przesłane z formularza nie są puste elseif (!empty($_POST[‘tresc’]) && !empty($_POST[‘imie’]) && !empty($_POST[‘email’]) && (!preg_match(”/^( [a-zA-Z0-9] )+( [a-zA-Z0-9._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9._-] +)+$/" ,$_POST[‘email’])) ) { // jeżeli powyższy warunek jest spełniony tworzona jest wiadomosć // zmienna $message zawiera tresć wiadomosci $message = “Treść wiadomości:\n$_POST[tresc]\n\nWysłał: $_POST[imie]\ne-mail: $_POST[email]”; // zmienna $header zawiera przede wszystkim adres zwrotny $header = “From: $_POST[imie] <$_POST[email]>”; // funkcja mail() za pomoca której wiadomosć zostanie wysłana @mail(“moj e-mail@gmail.com”,“Wiadomość ze strony www.xxx.pl”,"$message","$header") or die(‘Nie udało się wysłać wiadomości’); // wy¶wietlenie komunikatu w przypadku powodzenia echo " Dziękujemy, wiadomość została wysłana poprawnie! Na pewno odpiszemy w ciągu 48h."; } // lub w przypadku nie wypełnienia formularza do końca else { echo “Wypełnij wszystkie pola formularza”; } ?>[/code]
_Puma_ , dzięki, wiadomości na e-mail przychodzą i wszystko jest tak samo jak było. Mógłby ktoś to porządnie zrobić tak jak chciałem w pierwszym poście?