Php İle Yorum Sistemi Yaparken Sorun
Merhabalar ücretsiz dağıtmak ve kendimi geliştirmek amaçlı yazdığım bir blog scriptinde yorum sistemini yaparken abuk subuk bir yerde takıldım.
Buradan if else yapısında islem basarili basarisiz sorguları döndürüyorum, ANCAK blog başlıklarım seo uyumlu olduğu için şu şekilde gözüküyor;
http://localhost/blog/grafik-tasarima-nasil-baslanir/3
Anlayacağınız üzere her blog'da farklı bir url oluşuyor.
Kısaca if else yapısında Location'lara ne geleceğini bulamadım.
(Nasıl anlatacağımı tam olarak bulamadım. En iyisi siz sorumdaki eksikleri söyleyin ben cevaplıyayım ve sorunu bulalım :) .)
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
normal şartlarda bir önceki referer sayfasını bulmak için $_SERVER['HTTP_REFERER']
işini görmesi gerekir eğer post ettiğin 2. bir yer yoksa ki yok gibi görünüyor.
en kötü ihtimalle yorum formunun içine bir input daha koy tipi hidden olsun ve o anki konunun url'ini yazdır.
<input type="hidden" name="redirect_url" value="buraya urlin gelsin">
ve header()
tarafında yönlendirme işlemin şöyle olacak
header('Location:' . $_POST['redirect_url']);
eğer redirect_url
kısmına nasıl url'i yazdıracağını bilmiyorsan (ki bilmen lazım mantık olarak zaten konu sayfasındasın url'de id'de elinde yazdırabilirsin) ama diyelim ki hiçbir şey bilmiyorsun o zaman doğrudan sayfa url'ini alıp yazdırabilirsin. Yani;
<input type="hidden" name="redirect_url" value="<?='http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']?>">
$site_url = "http://localhost";
if(koşul){
header('Location:'.$site_url.'/'.?islem=basarili');
}
bu şekilde deneyebilirsin mantıgı şudur tam url'e geri göndermek
Kullanıcıyı geldiği yere yollamayı deneyebilirsin.
header('Location:'.$_SERVER['HTTP_REFERER'].'?islem=basarili');