PHP’de Header İle Yönlendirme ve Bir Kaç Öneri

Standard

PHP’de sayfayı yönlendirmek için 2 farklı kod kullanabilirsiniz. Bunların kullanım yeri, öncesi ve sonrası önemlidir. Kullanacağım dil beginner seviyesindeki kişiler içindir.

Header ile yönlendirme kuralı

“Header” kullanabilmek için öncesinde hiç bir şekilde html kodlar ekrana basılmamış olması gerekir. Örnek:

header("Location: /");

“header” kullanmadan önce eğer ekrana daha önceden echo edilmiş bazı html kodları varsa “Cannot modify header” hatası alırsınız. Örnek:

echo "Giriş yapınız";
header("Location: /");
exit;

Bu şekilde bir yönlendirme çalışmayacaktır ve hata verecektir: Alacağınız hata: “cannot modify header information – headers already sent by” hatası olacaktır. İşte hatanın nedeni az önce de bahsettiğim gibi, ekrana daha önceden hiç bir şekilde html kod/metin basılmaması gerekir.

Burada önemli olan bir nokta da, yönlendirme yapılacaksa, yönlendirme kodundan sonra “exit” ya da “die” kullanmalıyız aksi taktirde bu kod tarayıcı tarafından okunmaya devam ettiği için, header’dan sonra gelecek kodlar işleme alınabilir.

Eğer yazılımsal olarak bunu kullanmaya mecbursanız javascript ve meta tagı ile yönlendirme yapmanız tavsiye olunur. İkisini bir arada kullanmamızın sebebi ise bazı tarayıcılarda javascript etkin olmayabilir. Bu durumda meta yönlendirmesi geçerli olacaktır.

echo "Giriş yapınız
<script>window.top.location = '/login.php';</script>
<meta http-equiv='refresh' content='0;URL=/login.php';>
";
exit;

Gördüğünüz gibi eğer bir şekilde ekrana basılmış kodlardan sonra yönlendirme yapmanız gerekiyorsa en sağlıklı olarak bu kodu kullanmalısınız. Javascript tarayıcıda etkin değilse, meta kodu devreye girer ve yönlendirmeyi yapar. Zaten exit komutunu da uyguladığımız için sayfanın geri kalanı da gösterilmez/işleme alınmaz.

Exit mi Die mı?

Bunu en doğru PHP sayfasında görebiliriz. Zaten gerekli açıklama orada yapılmış.

exit — Bir ileti çıktılayıp çalışmakta olan betiği sonlandırır
die — exit() işlevinin eşdeğeri

Yani exit ile die eş değer. Peki niye 2 tane aynı kod var. Çünkü farklı dillerde yazan yazılım uzmanları için alias olarak kullanılabilir olması için.

HACKED BY SudoX — HACK A NICE DAY.

Summary
Article Name
PHP'de Header İle Yönlendirme ve Bir Kaç Öneri
Description
PHP'de sayfayı yönlendirmek için 2 farklı kod kullanabilirsiniz. Bunların kullanım yeri, öncesi ve sonrası önemlidir. Kullanacağım dil beginner seviyesindeki kişiler içindir.
Author
Mutlu ARICI

Leave a Reply

Your email address will not be published. Required fields are marked *