jQuery ajax проверяет captcha

#php #jquery #ajax #captcha

#php #jquery #ajax #капча

Вопрос:

у меня возникла проблема при публикации капчи для проверки с помощью php. Я отправляю captcha_value строку в captcha_check.php и я не знаю, как получить возвращаемое значение ‘true’ или ‘false’

 $("#myForm").submit(function() {
$.ajax({
       type: "POST",
       url: '/captcha_check.php',
       data: captcha_value
       success: function(data) {
          **?WHAT TO DO HERE? how to get true or false**
       }
});

captcha_check.php
<?php   

if ($_POST['captcha'] == $_SESSION['captcha'])
echo 'true';
else
echo 'false';
?>
  

Комментарии:

1. Проверьте это, указав ‘alert (data)’ в функции обратного вызова success.

Ответ №1:

Я установил заголовок для вывода в виде xml.

captcha_check.php

 <?php   
header('Content-Type:text/xml');//needed to output as xml(that is my choice)
echo "<root><message>";
if ($_POST['captcha'] == $_SESSION['captcha'])
echo 'true';
else
echo 'false';
echo "</message></root>";
?>

$("#myForm").submit(function() {
$.ajax({
       type: "POST",
       url: '/captcha_check.php',
       dataType:'xml', 
       data: captcha_value
       success: function(data) {
          if($(data).find('message').text() == "true"){
             //now you get the true. do whatever you want. even call a function
            }
          else{
        //and false
          }
       }
});
  

это мое решение, вероятно, работает и для вас. Я всегда предпочитаю xml для связи. Это мой выбор.

Ответ №2:

 $.ajax({
    type: "POST",
    url: '/captcha_check.php',
    data: captcha_value,
    dataType: "text",
    success: function(data) {
        if(data == "true") {
            // correct
        } else {
            // nope
        }
    }
});
  

Ответ №3:

 dataType: 'json', //Important:Sometimes JQuery fails to automatically detect it for you.
success: function(data) {
    console.log(data ? "Data is true" : "Data is false");
}