Проверка на полетата на контактна форма

confiscate

Registered
Здравейте ,

Имам следната контактна форма:
PHP:
<?php
// declare values
$contact_email = $_POST['EmailAddress'];
$contact_subject = $_POST['Subject'];
$contact_name = $_POST['FullName'];
$contact_message = $_POST['Message'];
$mydate = date ( 'l, F d Y g:i A',time()+240 );



// where to send e-mail to
$to = 'potrebitel@domain.com'; //тук въведете вашия e-mail (на който искате потребителите да изпращате e-mail)

// e-mail subject
$subject = "Съобщение от потребител на domain"; //тук на мястото на domain въведете името (не url-a) на вашия сайт

// e-mail message
$message = "Съобщение от потребител на domain:\r\n" //тук на мястото на domain отново въведете името (не url-a) на вашия сайт


."----------------------------------------------------------------\r\n"
."Име: $contact_name\r\n"
."Тема: $contact_subject\r\n"
."Дата: $mydate\r\n"
."От IP: {$_SERVER['REMOTE_ADDR']}\r\n\r\n"
."<b>Съобщение:</b> $contact_message\r\n"
."Form Address: {$_SERVER['SERVER_NAME']}{$_SERVER['REQUEST_URI']}";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=windows-1251' . "\r\n";
$headers .= "From: $contact_name <$contact_email>\r\n";

// check for validation, then send the e-mail
if(empty($contact_name) || empty($contact_email) || empty($contact_subject) || empty($contact_message)) {
echo '<p>Използвайте тази контактна форма и натиснете <b>\'Изпрати\'</b>!</p>
<form method="post" action="">
<table id="Form-Details">
<tbody>
<tr><td>Вашето име:</td><td><input type="text" name="FullName" size="20" /></td><br>
<tr><td>Вашият е-mail:</td><td colspan="3"><input type="text" name="EmailAddress" size="20" /></td></tr><br>
<td>Тема:</td><td><input type="text" name="Subject" size="20" /></td></tr>
<tr><td colspan="4">Съобщение:</td></tr>
<tr><td colspan="4"><textarea rows="6" name="Message" cols="47" class="input"></textarea></td></tr>
<tr><td colspan="4" class="right1"><input type="submit" value="Изпрати" /><input type="reset" value="Изчисти" /></td></tr>
</tbody>
</table>
</form>';
} elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $contact_email)) {
echo "<p>Грешка: Моля въведете валиден e-mail.</p>";
} else {
mail( $to, $subject, $message, $headers );
echo "<h3>Съобщението беше успешно изпратено!</h3><p> $contact_name,<br /><br />Възможно най - скоро ще отговорим на вашето съобщение на e-mail $contact_email.";
}
?>

Може ли да ми кажете как да проверява дали всички полета са попълнени и ако не са да не може да се изпраща, а да изкарва съобщение,че всичко трябва да се попълни ?

Благодаря предварително !!!

Поздрави
 
С jquery:

[js]<script>
$('input[type=button]').click(function(){
var a=$('input[name=email]').val();
var b=$('input[name=name]').val();
...
if( a=="" || b=="" || ... ) {
$('p[name=error]').html("Моля, попълнете всички полета.");
}
else{
document.myform.submit();//myform e id-то на формата ти
}
});
</script>[/js]

Формата трябва да има id=myform.
Трябва да имаш <p name=error></p>, където да пише, че има грешка.
Не съм тествал, но кода ми изглежда наред, пиши ако не става :).
 

Back
Горе