我正在尝试为我正在制作的应用编写JSON API。它是用PHP编写的。在PHP脚本的开头,我尝试检查是否存在所有GET参数,如果没有,则服务器应发送400 - 错误请求标头。
代码如下所示:
//CHECK CONDITIONS
if (isset($GET["clat"]) && isset($GET["clng"]) && isset($GET["limit"]))
{
//do stuff
} else {
header( "HTTP/1.0 400 Bad Request");
exit;
}
服务器只提供带有200-OK标头的空白页面。所以我在另一个网络服务器上进行了测试,它似乎确实有效。
显然,服务器出现了问题。我该如何调试此问题?
修改
我似乎找到导致标题始终为200-OK的行。在PHP的开头,我包含另一个带有一些mySQL Connection参数的php文件。当我注释掉include 'setup.php';
行时,它会起作用。 setup.php包含以下内容:
// Connects to Our Database
mysql_connect("#####", "#####", "######") or die(mysql_error());
mysql_select_db("####") or die(mysql_error());
如何在之后能够发送不同的HTTP标头时保留外部数据库信息?
提前致谢。
答案 0 :(得分:1)
header( "HTTP/1.0 400 Bad Request", true, 400);
答案 1 :(得分:1)
检查你所包含的文件是否在文件开头没有UTF BOM以及关闭后的任何文本?>,因为如果有,PHP会自动发送标题
答案 2 :(得分:0)
尝试这种方式:
<?php
header("Status: 400 Bad Request");
?>