0

我有一个包含以下代码的网页;

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">
<title>Search results</title>
<?php
include_once('filename.php');
$info = ptb_connect('filename.csv','F');
$locations = ptb_listUnique($info, 'Property_Location');
$property_type = ptb_listUnique($info, 'Property_Type');
$property_buy_rent = ptb_listUnique($info, 'Buy_Rent');

if(empty($_GET['location']) && empty($_GET['type']) && empty($_GET['buyrent']) && empty($_GET["min_val"]) && empty($_GET["room_no_min"])){
header("Location:propertysearch.php"); exit;
}

但是当我转到该页面而不是重定向到 propertysearch.php 时,我收到消息“警告:无法修改标头信息 - 标头已由(输出开始于 N:\www\test\results.php:7)在 N: \www\test\results.php 在第 15 行",这是开始 Header("Location..

我已经尝试了很多方法来尝试解决这个问题,包括使用 ob_start(); 消除空格。等,但无法弄清楚。

非常感谢所有帮助。

4

2 回答 2

3

我希望这个答案可以帮助你:

要使用标题,必须在页面上开始任何输出之前使用它。换句话说,它必须在任何东西被打印之前出现,包括docytype。

使用的语法非常简单,在文件的最顶部打开 php 然后键入 ob_start() ,结果是输出缓冲:

<?php ob_start(); ?>

现在您可以在页面中的任何位置调用标题函数。为了确保您清除文件最底部未使用的资源,请通过在 php 中键入 ob_flush() 来刷新缓冲区:

<?php ob_flush(); ?>

当我遇到一些问题时,这对我有用。!希望这对你也有帮助..

于 2013-05-20T06:46:11.280 回答
1

我设法解决了这个问题,这是字节顺序标记问题,我将字符集从 UTF-8 更改为 ISO 西欧并解决了它。

于 2013-03-20T21:07:09.117 回答