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";
}