Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][PHP]Problem z walidacją formularza kontaktowego
kokos07
post
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ść.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 13:55