【发布时间】:2016-01-21 22:07:46
【问题描述】:
我有一个应用程序每秒通过 Ajax 向 PHP 文件发出 POST 请求。如果我尝试在 php 中拆分 $_POST 数组中收到的字符串,或者尝试“json_decode”它,我会收到 500 错误。 如果我不执行任何这些操作,我不会收到任何错误。 为什么?
这是处理 Ajax 请求的 PHP 代码(使用两个 POST 变量):
<?php
$mysqli = new mysqli(*data*);
if (is_string($_POST["lid"]) && (is_string($_POST["price"]) || is_integer($_POST["price"])) && 0===1) {
$li_id = $_POST["lid"];
$esc_li_id = $mysqli->real_escape_string($li_id);
$li_price = intval($_POST["price"]);
if ( ($li = $mysqli->query("SELECT listing_id, price, buyer_id, auction_name FROM listings WHERE listing_id = '$esc_li_id' AND schedule_requested = '1' AND finished = '0'")) && ($mysqli->affected_rows > 0) ) {
if ( intval($li["price"]) !== $li_price ) {
$response = array($li["price"], $li["buyer_id"], $li["auction_name"]);
if ($logged === 1) {
$response[] = $user_id;
}
echo json_encode($response);
} else {
echo "err";
}
} else {
echo "err";
}
} else echo 'err'; ?>
如果外部“if”中的代码被执行,它会返回 500 错误。如果我将&& 0 === 1 放入外部“if”中,则不会返回错误。
【问题讨论】:
-
因为你写的代码坏了,导致 PHP 在致命错误上停止,导致“500 Internal Server Error”。检查开发者控制台的网络选项卡中的输出,或服务器上的 Apache 日志。
-
@NielsKeurentjes - 在以 cmets 的身份发布答案时,您如何在此处获得 24k 代表?
-
@jimboJonny,秘籍。
-
@JimboJonny 因为我只发布真正解决问题的答案。当我只是将问题确定为“我今天没有带水晶球,但这里有一些自己解决问题的建议”时,我不认为这是一个答案(我应该这样做)。
-
为什么不在此处包含代码?喜欢猜谜游戏吗?
标签: javascript php ajax