2010-04-29 120 views
1

我使用php脚本进行重定向后,搜索引擎搜索到我的websiter的搜索词。php脚本重定向代码问题

和我的重定向代码工作正常

但对一些物关键词我笏留在同一个页面。对于这些代码行,我在页面中收到一条警告消息。

Warning: headers already sent 
      (output started at /home/friendsj/public_html/index.php:2) in 
      /home/friendsj/public_html/index.php on line 20 
下面

为i应用于的网页

$ref=$_SERVER['HTTP_REFERER']; 

if(strstr($ref,"test")){ 
    $url="http://www.howtomark.com/robgoyette.html"; 
} 
else if(strstr($ref,"mu+word+gmail")){ 
    $url="http://www.howtomark.com/marketbetter.html"; 
} 
else{ 
    if(strstr($ref,"how+to+market+better")){ 
    }  
} 

if($url !=""){ 
    header("Location:$url"); 
} 
+0

您可以使用 '0101010' 按钮格式化代码。否则,它不可读。 – 2010-04-29 09:53:08

+0

同时在“?>”后检查文件末尾是否有空格 – 2010-04-29 10:21:58

回答

1

重定向通过设置HTTP头实现,作为代码功能建议使用header()。这意味着您只能在之前重新定向,然后才能开始文档输出。无论您在第2行开始打印什么,稍后执行;-)

+0

Thanksssssssssssssssssss – 2010-04-29 10:24:11

0

除去任何输出开始的第二线在index.php的

0

如果您使用Header函数,则在调用该函数之前不允许输出某些内容。

在你的情况下,你在第2行写在index.php东西输出。

一个不好的解决方法是使用输出缓存函数ob_start。 但这不是一个真正的解决方案。

+1

为什么输出缓存功能不是真正的解决方案? – 2010-04-29 09:56:15

+1

@Manos:因为更好的是治愈疾病,而不是仅仅隐藏症状 – zerkms 2010-04-29 10:18:24

+0

zerkms博士是在错误的社区,我们需要一个编码器来解释:) – 2010-04-29 10:27:00

0

试试这个

<?php ob_start(); 
$ref='some text goes here'; 

if(strstr($ref,"test")){ 
    $url="http://www.howtomark.com/robgoyette.html"; 
} 
else if(strstr($ref,"mu+word+gmail")){ 
    $url="http://www.howtomark.com/marketbetter.html"; 
} 
else{ 
    if(strstr($ref,"how+to+market+better")){ 
    }  
} 

if(isset($url) && !empty($url)) { 
    header("location:$url"); 
} 
ob_flush(); 
?>