PHP döngü için problem yönlendirme

5 Cevap

i çerçeve xajax kullanıyorum

i want redirect my url in for loop. every time its go to the home.php at last

benim örnek kod bu

for($i=0;$i<4;$i++) {
    if($i == 1) {
        header("index.php")
    } else {
        header("home.php")
    }
}

5 Cevap

Eh, başlangıç ​​değeri '$ i' else blok home.php işaret ilk kez adı verilecek, 0'dır.

Neden bile bunu yapmak için bir döngü var? Bu hiç mantıklı.

Bu kodu nokta tam olarak nedir? Yalnızca komut bir yönlendirme olabilir.

Ve, bu gibi yazılmalıdır:

header('Location: home.php');
exit;

çıkışı olmayan, kod çalışmasını sürdürür.

Ben çok içine kendimi düşmek basit bir hata, ama başlık () farklı başlıkları bol ayarlayabilirsiniz; aslında (yönlendirmek için sayfa) Yer başlığını belirtmeniz gerekir:

header("Location: index.php")

The point is that after a redirect, its a whole new page load. PHP starts everything a new, so your loop will be started new. That means on every page $i will start at 0 and loop to 3.

header ("Location ... otomatik başlıklarını göndermek için) kullanıcıya bir şey göndermek veya çıkış ile (sayfa durdurmak veya ölmek var, sizi yönlendirmek değil. bu son çünkü Yani for döngüsü her zaman home.php yönlendirme olacak döngü için değil, onun ilk, çünkü set header.

Ben bu yazı ile katılıyorum: http://stackoverflow.com/questions/1304890/redirect-problem-in-for-loop-in-php/1304896#1304896

Hala bu yapmak istiyorsanız Ancak, sayfa yönlendirme yaparken yürütme bitmeli + senin döngü zaten idam edilmiş bir değişken tanımlayan geçirerek bazı geçici çözüm bulabilirsiniz.

Eğer bir şekilde bu kodu ve değişim kullanabilirsiniz:

if(!isset($_GET['ex']) || $_GET['ex'] != '1') //can use ether isset or/and check its value  
{
    for($i=0;$i<4;$i++) 
    {
        if($i == 1)
        {
            header("index.php?ex=1");
            die(); //or exit();
        } else {
            header("home.php?ex=1");
            die(); //or exit();
        }
    }
}