Здравствуйте!
Целый день пыхтел, гуглел, совсем загудел
Прошу помощи
Есть форма комментариев, без родной капчи, пытаюсь ее прикрутить.У
Удивительно, но алгоритм такой: каптча дает "ок" - форма должна отправиться, каптча дает нет, должна появится ошибка.
Вот форма
<form method="post" name="uploader" enctype="multipart/form-data" id="commt">
<inline>
<div class="textarea">
<inline class="second">
<input type="text" name="sended_name" required placeholder="Имя" value="<?echo$REAL_NAME?>" <?echo$disabled_name?> >
<label><img src="<?echo$dir_blocks_http?>email.png" alt="email" class="email"></label>
<input type="email" name="sended_email" required placeholder="Email" value="<?echo$REAL_EMAIL?>" <?echo$disabled_email?> >
<input type="hidden" name="img_hidden" required placeholder="Email" value="">
<input type="submit" id="submit" name="send_comments" value="Отправить"/>
<span><?=$_SESSION['msg']?></span>
<?php unset ($_SESSION['msg']);?>
</inline>
<p>Сколько <?=$color?> яблок?<br /><?="$first_l$second_l"?> <br />
Ваш ответ: <input type="text" id="result" name="result" value="" style="width:17px; font-weight:bold;margin-top: 10px;" /><br /></p>
</div>
</inline>
<script>
$(document).ready(function(){
$("#commt").submit(function(){return false;});
$("#send_comments").on("click",function(){
var msg=$("#result").val();
// если обе проверки пройдены
// сначала мы скрываем кнопку отправки
$("#send_comments").replaceWith("<em>отправка...</em>");
$.ajax({
type:'POST',
var resok = $('div.hidden').data('lat');
resok:$("#commt").serialize(),
success:function(resok){
if(resok=="1"){
$("#commt").fadeOut("fast", function(){
$(this).before("<p><strong>Ваше сообщение отправлено</strong></p>");
setTimeout("$.fancybox.close()",1000);
});
}
}
});
});
});
</script>
<?php
$first = rand(1, 5); //получаем случайное значение
$second = rand(1, 5);
if ($first == $second) {//убираем возможность одинаковости первого и второго числа и исключаем тем самым нулевой результат
$first = rand(1, 3);
$second = rand(4, 5);
}
function mirror ($name, $name_l) //привязываем к выводимой в браузер ($first_l и $second_l) переменной текстовое значение в соответствии с используемой при вычислении
{
$g = "1";//картинка яблока
$r = "0";
switch ($name) {
case 1:
$name_l = "$g"; break;
case 2:
$name_l = "$r$g"; break;
case 3:
$name_l = "$r$g$r"; break;
case 4:
$name_l = "$r$g$r$g"; break;
case 5:
$name_l = "$r$g$r$g$r"; break;
}
return $name_l;
}
$first_l = mirror ($first, $first_l); //инициализируем переменную
$second_l = mirror ($second, $second_l);
// привязываем количество цвета к значению $first и $second
function mirrorColor ($numvar){
switch ($numvar) {
case 1:
$green = 1;
$red = 0; break;
case 2:
$green = 1;
$red = 1; break;
case 3:
$green = 1;
$red = 2; break;
case 4:
$green = 2;
$red = 2; break;
case 5:
$green = 2;
$red = 3; break;
}
return array ($green, $red);
}
$f_color = mirrorColor ($first);// инициализируем массив
$s_color = mirrorColor ($second);
$gr_word = "<span style=color:green;font-weight:bolder>зеленых</span>";
$red_word = "<span style=color:red;font-weight:bolder>красных</span>";
$t = time(); //инициализируем переменную для смены операций временем в секундах на момент запроса
if ($t & 1) //меняем операцию в соответствии с четностью переменной
{
$_SESSION['res'] = $f_color['0'] + $s_color['0']; //заносим результат в сессионную переменную
$color = "$gr_word";//выводимое в браузер название цвета
}
else
{
$_SESSION['res'] = $f_color['1'] + $s_color['1'];
$color = "$red_word";
}
if (isset($_POST['result'])) { //если это был ответ
if (trim(strip_tags($_POST['result'])) == $_SESSION['res']) { //убираем, на всяки случай, теги и пробелы с обоих сторон и сравниваем результаты
$_SESSION['msg'] = " Верно<br />";
$Lat = ["1"];
}
else {
$_SESSION['msg'] = " Ошибка<br />";
$Lat = ["0"];
}
if (empty($_POST['result'])) {
$_SESSION['msg'] = " Нужно ввести ответ...<br />";
$Lat = ["0"];
}
}
?>