Php 返回空的Ajax调用

Php 返回空的Ajax调用,php,ajax,wordpress,Php,Ajax,Wordpress,我的表格如下: <div class="any_reg"> <div class="mail_area"> <form name="any_reg" id="any_reg" method="POST" action="" class="mail_area"> <table> <tr>

我的表格如下:

<div class="any_reg">

            <div class="mail_area">
                <form name="any_reg" id="any_reg" method="POST" action="" class="mail_area">
                <table>
                <tr>
                <td><input type="text" name="email" id="mail" placeholder="Enter Your Email"></td>
                <input type="hidden" name="id" value="<?php echo $auction ?>">
                <td><input type="submit" name="submitmail" id="submitmail" value="Submit"></td>
                </tr>
                </table>
                </form>
            </div>
        </div>  
将转到包含以下代码的页面:

 <?php
    if (strstr($_SERVER['PHP_SELF'],WPA_PLUGIN_NAME) && isset($_GET['submitmail'])){
    check_ajax_referer( "WPA-nonce" );

      $auction_id = $_POST['auction_id'];
      $watch_email = strip_tags(stripslashes($_POST['email']));
      $tablename = $wpdb->prefix . "wp_wpa_watchlist";

      $sql = "INSERT INTO ".$tablename." (auction_id, watch_email) VALUES (".$auction_id.", '".$watch_email."' );";
      $result = $wpdb->query($sql);

      if ($result){
        echo "Success";
          // _e("You will be notified of any changes to this auction",'wpauctions');
      }
      else {
        echo "Failed";
      }
    }

调用返回的是空数据,而不是其他数据。对于Ajax和任何与之相关的东西,我都是一个新手。请帮帮我。我的错误是什么

如果strstr$\u SERVER['PHP\u SELF',WPA\u PLUGIN\u NAME&&isset$\u GET['submitmail']{,则可能无法满足此if语句的要求,从而导致它跳过脚本的执行。向第一个if语句添加一个else语句,并添加一条消息,以便在它失败时可以看到如下情况:

    if (strstr($_SERVER['PHP_SELF'],WPA_PLUGIN_NAME) && isset($_GET['submitmail'])){
        check_ajax_referer( "WPA-nonce" );

          $auction_id = $_POST['auction_id'];
          $watch_email = strip_tags(stripslashes($_POST['email']));
          $tablename = $wpdb->prefix . "wp_wpa_watchlist";

          $sql = "INSERT INTO ".$tablename." (auction_id, watch_email) VALUES (".$auction_id.", '".$watch_email."' );";
          $result = $wpdb->query($sql);

          if ($result){
            echo "Success";
              // _e("You will be notified of any changes to this auction",'wpauctions');
          }
          else {
            echo "Failed";
          }
        }
       else {

           echo "Failed if statement";

       }

HTTP调用返回的状态代码是什么?可能是由于脚本中的错误,导致出现无法恢复的500错误。而在另一端,watchemailajax.php检查此$auction\u id=$\u POST['auction\u id'];并打印并退出,检查是否返回数据?SQL注入警报向第一个if语句添加一个else子句,查看是否返回任何内容。可能是第一个if语句的条件未满足,因此无法执行其contents@JesseSchokker是的,我收到一个500的内部服务器错误,但我仍然无法计算它是什么导致了这个问题,所以它没有进入循环,我将它重写为if strstr$\u SERVER['PHP\u SELF',WPA\u PLUGIN\u NAME&&isset$\u GET['submitmail']到ifasset$\u GET['submitmail']仍然存在的问题是,将这些值放入var_转储并查看输出是什么。它允许您准确地读取变量的内容。我这样做了,它返回一个空数组,给定的电子邮件和id都没有显示。请确保数据位于此元素$'any_reg'。序列化,因为这是您发送PHP的内容是的,它没有传递任何值,当我试图提醒它时,它是第n个,但为空
    if (strstr($_SERVER['PHP_SELF'],WPA_PLUGIN_NAME) && isset($_GET['submitmail'])){
        check_ajax_referer( "WPA-nonce" );

          $auction_id = $_POST['auction_id'];
          $watch_email = strip_tags(stripslashes($_POST['email']));
          $tablename = $wpdb->prefix . "wp_wpa_watchlist";

          $sql = "INSERT INTO ".$tablename." (auction_id, watch_email) VALUES (".$auction_id.", '".$watch_email."' );";
          $result = $wpdb->query($sql);

          if ($result){
            echo "Success";
              // _e("You will be notified of any changes to this auction",'wpauctions');
          }
          else {
            echo "Failed";
          }
        }
       else {

           echo "Failed if statement";

       }