Php Geldiği Sayfa Sorunu
-
Herkese selam,
Bir sorunum var üye giriş yapınca geldiği sayfaya dönsün istiyorum aklıma şöyle bir yöntem geldi:
$ref=ıvırzıfırfilitre($_GET["ref"]);
diğer sayfalara login linkine bulunan sayfanın linkini eklicem
/asd-asdasd sayfasından logine geldimi ref geti sayesinde geri dönebilicem ama bir açık oluşuyor insanlar login.php?ref=www.kendisitesi.com yapınca loginden sonra o sayfaya yönlenir. ,
Bir sonraki yöntem de
$_SERVER
[
'HTTP_REFERER'
] ile ancak ben login.php sayfasına tekrar verilerimi post ediyorum doğal olarak
login.php sayfasına tekrar yönleniyorum.
Bir öneriniz var mı ?
Not: insanlar bir yazıyı okurken girişten sonra tekrar okuduğu sayfaya gelsin ki tekrar aynı yazıyı
bulmaları zor olmasın diye istiyorum
-
-
-
Login sayfasına gelince geldiği URL i session olarak tutup, post işlemi sonrası login başarılı ise session da tutulan sayfaya redirect edebilirsiniz.
Sonra da session u silersiniz.
-
coder2 bunu yazdı
Login sayfasına gelince geldiği URL i session olarak tutup, post işlemi sonrası login başarılı ise session da tutulan sayfaya redirect edebilirsiniz.
Sonra da session u silersiniz.
Get ile daha uygun bir çözüm olur (farklı servislerden kimlik doğrulama vs.).
Yalnız o return url parametresinin aynı domainde (ya da izin verilen diğer domainde) olduğunu doğrulamak gerekir.
Sadece tarayıcının yolladığı refererrer parametresine bel bağlamak yanlış olur çünkü istemci tarafında manipüle edilebilir.
-
login hatası veren sayfayı cookieye yaz. loginden sonra cookieden okuyup cookieyi temizleyip sayfaya gidersin. böylece login sayfasından register sayfasına giderse ve tekrar logine gelip giriş yaparsa yine login hatası aldığı sayfaya yönlenmiş olur. tabi ek olarak loginsiz girilen sayfa açıldığı zaman da bu cookieyi temizlemen gerekiyor.
-
bir hata yapmadım sanırım:
// Referer bilgisi var mı ve geçerli bir url mi? if ( ! empty($_SERVER['HTTP_REFERER']) AND filter_var($_SERVER['HTTP_REFERER'], FILTER_VALIDATE_URL) ) { $referer_url = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST); // Senin site adresin (www olmadan yazmalısın) referer url içinde varsa; if ( strpos($referer_url, 'seninsiteadresin.com') !== FALSE ) { header('Location: ' . $_SERVER['HTTP_REFERER']); } // Yoksa; else { header('Location: anasayfa.php'); } } else { header('Location: anasayfa.php'); }