2013-03-19 99 views
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 \测试\结果。 php:7)在第15行的N:\ www \ test \ results.php中,这是开头的行(“Location ..

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

非常感谢所有帮助。

回答

1

我设法解决这个问题,它是Byte Order Mark问题,我将字符集从UTF-8更改为ISO西欧,并解决了这个问题。

3

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

要使用任何输出已经开始在页面上之前使用它有一个头。换句话说,它必须在印刷包括docytype在内的任何东西之前。

使用的语法很简单地在文件打开PHP的最顶端,然后再键入ob_start()这个原来输出缓冲:

<?php ob_start(); ?> 

现在,您就可以在网页中的任何地方调用头功能。为了让这个不被你的文件的最底部使用键入使用ob_flush()内的PHP刷新缓冲区一定要明确资源:

<?php ob_flush(); ?> 

时,我遇到了一些问题,这为我工作!希望这也能帮到你..

相关问题