проблема с кодом перенаправления PHP-скрипта - PullRequest
1 голос
/ 29 апреля 2010

Я использую 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

ниже - код, который я использовал на этих страницах

$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");
}

Ответы [ 4 ]

1 голос
/ 29 апреля 2010

Перенаправление выполняется путем установки заголовка HTTP, как предполагает использование функции header(). Это означает, что вы можете перенаправить только до , когда вы начнете вывод документа. Что бы вы не начали печатать в строке 2, сделайте это позже; -)

0 голосов
/ 29 апреля 2010

Попробуйте это

<?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();
?>
0 голосов
/ 29 апреля 2010

Если вы используете функцию Header, вам не разрешено выводить что-либо до вызова этой функции.

В вашем случае вы написали в строке 2 файла index.php что-то для вывода.

Плохой обходной путь - использовать функции кеша вывода ob_start. но это не настоящее решение.

0 голосов
/ 29 апреля 2010

удалить все выходные данные, начиная со 2-й строки в index.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...