Php ile program yazarken bazı uygulamalarda yönlendirme yapmamız gerekiyor ve hemen her programda var diyebiliriz. Yönlendirme komutu bildiğiniz gibi header fonksiyonu ile gerçekleşiyor ve belirlenen saniye de gerekli sayfaya gitmesini sağlıyor kullanıcının. Ancak standart kullanımı yani , header(“location:index.php”); şeklinde değil de saniye vererek yönlendirme yapmak istersek ; header(“refresh:2;url=2”); bir sorun çıkıyor ve nedense yönlendirme yapılmıyor.
İşte şimdi bu sorunun çözümüne bir bakalım. İlk sorun php sürümünüzün düşük olması ki bu düşük bir ihtimal. Ama ikinci ihtimal ise anahtar kodu koymamamız. Ob_start(); bu fonksiyon sayesinde yönlendirmede bir sorun yaşamayacaksınız. Ancak bir durum daha var ki en çok yapılan hatalar arasında diyebilirim;
Örneğin ayar.php sayfası oluşturuldu ve veritabanı bağlantısı ile aynı zamanda bir de session başlattınız. Burada session_start(); fonksiyonunun en altına da ob_start(); fonksiyonunu koymalısınız. Yani sayfanın en üst kısmında yer almalı ki sorun çıkmasın. Bu durumları göz ardı etmediğiniz taktirde yönlendirme başarılı bir şekilde yapılacaktır.
Son olarak şunları söylemem gerekiyor ki bende ilk zamanlar bu sorunu yaşadım ve acemiliğin getirdiği hataları yaparak belki en üste yazmadım belki bir noktalama işaretini unuttum belki de ob_start(); fonksiyonunu eklemedim. Sonuç olarak belirlenen üç durumu başarılı bir şekilde sayfamıza uygularsak sorun ortadan kalkacak ve saniyeli yönlendirme yapabileceğiz.
Ob_start komunu session altına aldım fakat refresh bölümünü kaldırmama rağmen yönlendirme bir türlü çalışmadı php 5.6 sürüm ve pdo kodlamalı bir script kullanıyorum başka bir çözüm veya bakmam gereken yer varmı ?
Hayır dostum , ob_start(); komutunu eğer session varsa altına, yoksa en üst kısma yapıştırman yeterli. Ayrıca bu fonksiyonu (PHP 4, PHP 5, PHP 7) versiyonları desteklemektedir. Refresh bölümü ile olan kısmı tam anlamadım kaldırmana gerek yok , refresh’de süre belirleyebilirsin. Normal header ile direkt gönderirsin. Ayrıca bir yere bakacaksan da forumları tercih etmelisin.
Eyvallah çok işime yaradı. Eline sağlık
bende çalışmıyor header(“Location: $URL”); şeklinde kodum. sorun nedir acaba
String içerisinde değişkeni doğrudan dahil etmek için daha farklı kullanım gerekir. Aşağıdaki gibi yapabilirsiniz böyle çalışır.
$url =”https://www.google.com”;
header(“location:”.$url);
hocam siz ne kral adamsınız ya valla sizin sayenizde yönlendirmeyi yaptım