Shokoladniu
Новичок
Объединение captcha и php контакт формы (с использованием jquery)
Здраствуйте! Есть простая php форма и интересная captcha, которые по отдельности настраиваются быстро и работают.
Но вместе они объединяться никак не хотят
PHP форма
и скрипт капчи (jQuery Fancy Captcha)
Так же есть скрипт на jquery, которые обрабатывает echo 1,2,3 и выдает пользователю сообщение
Собстевнно как я делаю? форма отправляется на captcha.php у которой в /* YOUR CODE GOES HERE */ вставлен php скрипт отправки почты.
При попытке объединения отправка не работает. Т.е. выводятся всевозможные сообщения, но даже письмо не приходит на почту. В готовом варианте можно увидеть здесь
Мой вопрос: Что я сделал неправильно и как интегрировать капчу и данный скрипт формы?
Здраствуйте! Есть простая php форма и интересная captcha, которые по отдельности настраиваются быстро и работают.
Но вместе они объединяться никак не хотят
PHP форма
PHP:
error_reporting(E_NOTICE);
function valid_email($str)
{
return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}
if($_POST['name']!='' && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && strlen($_POST['comment'])>1)
{
$to = "[email protected]";
$headers = 'From: '.$_POST['email'].''. "\r\n" .
'Reply-To: '.$_POST['email'].'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$subject = "Contact Form";
$message = htmlspecialchars($_POST['comment']);
if(mail($to, $subject, $message, $headers))
{
echo 1; //SUCCESS
}
else {
echo 2; //FAILURE - server failure
}
}
else {
echo 3; //FAILURE - not valid email
}
PHP:
session_start(); /* starts session to save generated random number */
/* this compare captcha's number from POST and SESSION */
if($_POST[captcha] && $_POST[captcha] == $_SESSION[captcha])
{
echo "Passed!"; /* YOUR CODE GOES HERE */
unset($_SESSION[captcha]); /* this line makes session free, we recommend you to keep it */
}
/* in case that form isn't submitted this file will create a random number and save it in session */
elseif(!$_POST[captcha])
echo "Failed!";
else
{
$rand = rand(0,4);
$_SESSION[captcha] = $rand;
echo $rand;
}
PHP:
$(document).ready(function(){
$('#contactform').ajaxForm(function(data) {
if (data==1){
$('#success').fadeIn("slow");
$('#contactform').resetForm();
}
else if (data==2){
$('#badserver').fadeIn("slow");
}
else if (data==3)
{
$('#bademail').fadeIn("slow");
}
});
});
При попытке объединения отправка не работает. Т.е. выводятся всевозможные сообщения, но даже письмо не приходит на почту. В готовом варианте можно увидеть здесь
Мой вопрос: Что я сделал неправильно и как интегрировать капчу и данный скрипт формы?