0

可能重复:
PHP 已发送的标头

我正在尝试为我正在制作的应用程序编写 JSON API。它在 PHP 中。在 PHP 脚本的开头,我尝试检查是否所有 GET 参数都存在,如果不存在,则服务器应发送 400 - Bad Request 标头。

代码如下所示:

//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 连接参数的 php 文件。当我注释掉该include 'setup.php';行时,它起作用了。setup.php 包含以下内容:

 // Connects to Our Database 
 mysql_connect("#####", "#####", "######") or die(mysql_error()); 
 mysql_select_db("####") or die(mysql_error()); 

如何在之后能够发送不同的 HTTP 标头时保留外部数据库信息?

提前致谢。

4

3 回答 3

1

检查包含的文件是否在文件开头没有 UTF BOM 以及关闭后的任何文本?>,因为如果有,PHP 会自动发送标头

于 2012-10-10T14:11:32.733 回答
1
header( "HTTP/1.0 400 Bad Request", true, 400);
于 2012-10-10T13:22:41.330 回答
0

试试这个方法:

<?php
header("Status: 400 Bad Request");
?>
于 2012-10-10T13:23:27.000 回答