Validation with 1 echo displayed help me

dunno can I write one more question about contact form but i will try :slight_smile: Maybe u will help faster ;p

Code:

[php]<?php
$name = $_POST[‘name’];
$email = $_POST[‘email’];
$message = $_POST[‘message’];
$from = ‘From: domain.com’;
$to = ‘[email protected]’;
$subject = ‘Message from domain.com’;

$body = “From: $name\n E-Mail: $email\n Message:\n $message”;

if ($_POST[‘submit’]) {
if (!preg_match("/([\w-]+@[\w-]+.[\w-]+)/",$email))
{
echo ‘

Wrong email adress!!!

’;
}
    if ($name != '' && $email != '') {               
            if (mail ($to, $subject, $body, $from)) { 
                    echo '<p class="msg">Your message has been sent!</p>';
            } else { 
                    echo '<p class="msg">Something went wrong, go back and try again!</p>'; 
                   } 
            } else {
                    echo '<p class="msg">You need to fill in all required fields!!</p>';
                   }
}

?>
[/php]

And as u can see i have here few messages (echos) in if statements. But I wanna make this to display just one echo even if there would be more than 1 errors in contact form… Is that possible ?

example: Somebody leave all inputs empty and click “send” - atm he gets msg about wrong email and “u need fill all required fields”.
But in this kind of situation firstly i would like to display just msg about empty fields and after that if for example somebody would wrote something in all fields and wriote wrong email another he would get msg about wrong email :smiley: Hope u understand what I mean. Thanks

wrap this in an else clause:
[php]
if ($name != ‘’ && $email != ‘’) {
if (mail ($to, $subject, $body, $from)) {
echo ‘

Your message has been sent!

’;
} else {
echo ‘

Something went wrong, go back and try again!

’;
}
} else {
echo ‘

You need to fill in all required fields!!

’;
}[/php]

Like so:
[php]
if (!preg_match("/([\w-]+@[\w-]+.[\w-]+)/",$email)) {
echo ‘

Wrong email adress!!!

’;
}
else {
if ($name != ‘’ && $email != ‘’) {
if (mail ($to, $subject, $body, $from)) {
echo ‘

Your message has been sent!

’;
} else {
echo ‘

Something went wrong, go back and try again!

’;
}
} else {
echo ‘

You need to fill in all required fields!!

’;
}
}
[/php]

Now you should only ever see one of the messages.
Hope that helps,
Red :wink:

i got one message but…

when all fields are empty and I click send i can see message about wrong email exept of message about “fill all empty fields” :smiley: something is still wrong ;D

Change this line:
[php]if ($name != ‘’ && $email != ‘’)[/php]
to this:
[php]if (!empty($name) && !empty($email))[/php]

Red :wink:

Sponsor our Newsletter | Privacy Policy | Terms of Service