![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 27.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam, poniżej zamieszczam kod php do walidacji formularza.
Kod <?php if ( ! empty($_POST['contact'])) { $valid = array ( 'name' => array('/^[\w\d\._\-]+$/iD', 'Your name isn\'t filled out correctly.'), 'email' => array('/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD', 'You must provide a valid email.'), 'message' => array('/(.+){10,}/', 'You can\'t send a blank message.'), ); $errors = array(); foreach ($valid as $field => $data) { $regex = $data[0]; $message = $data[1]; $input = trim($_POST[$field]); if (empty($input) OR ! preg_match($regex, $input)) { $errors += array($field => $message); } } $result = empty($errors) ? 'success' : 'errors'; echo json_encode(array ( 'result' => $result, 'errors' => $errors, )); exit; } ?> Problem mam z miejscem gdzie mogę wstawić funkcje mail do wysłania formularza z tą walidacją. Funkcja mail wygląda następująco: Kod $toemail = 'mojemail@mail.com'; $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; mail($toemail, 'Subject', $message, 'From: ' . $email); Po wstawieniu tej funkcji po if ( ! empty($_POST['contact'])) { nie działa walidacja prawidłowo, jeżeli źle wpisze się pola to pomimo tego że pokaże się co trzeba poprawić to od razu wysyła maila. Proszę o wskazówkę w które miejsce mam wstawić funkcje wysłania maila aby najpierw sprawdzał błędy a dopiero po poprawnym wpisaniu pól wysyłał wiadomość. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:55 |