php script yönlendirme kodu sorunu

4 Cevap php

Ben arama motorlarından benim websiter için arama sözcüğü tespit sonra yeniden yönlendirme için bir php komut dosyası kullanıyorum.

ve benim yönlendirme kodu iyi çalışıyor

ancak bazı keywods i aynı sayfada kalmak için wat. kodu bu hatlar için o sayfaların bir uyarı mesajı alıyorum.

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

Aşağıda kullanılan kod olduğu sayfa

$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 Cevap

header() fonksiyonunun kullanılması da anlaşılacağı gibi yönlendirmeler, bir HTTP başlığı ayarlanarak gerçekleştirilir. Yani, sadece before Eğer belge çıkışını başlatmak yönlendirmek anlamına gelir. Satır 2 yazdırmayı başlatmak ne olursa olsun, daha sonra yapılacak ;-)

herhangi bir çıktı index.php 2. satır başladı kaldır

Eğer Kafa işlevini kullanıyorsanız, bu işlevi denir önce çıktı bir şeye izin verilmez.

Eğer Eğer çıktıya index.php şey 2. satırda yazdı.

A bad workaround is to use the output cache functions ob_start. but this is not a real solution.

Bu deneyin

<?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();
?>