Nasıl bir mod_rewritten sayfaya yönlendirme URL geçtikleri

3 Cevap php

SO nasıl yaptığını çok benzer benim sayfaları mod_rewrite. I www.example.com/users/login/, hangi dahili bir kontrolör olarak davranan users.login.php kullanacaktır var. Ben giriş tamamlandıktan sonra yeniden yönlendirmek için bir sayfa gibi bir parametre geçmek istiyorum.

Eğer questions/ users/login/questions/ yerine login.php?redir=questions.php benziyor gibi bir şey geçiyor, çünkü size çok tuhaf görünümlü bir URL ile sona göreli bir URL geçirirseniz

Herkes bu korkunç URL'yi kirletmeden güzel amele dışarı nasıl herhangi bir yorum veya çözüm var mı? Ben yol SO o "Soru Sor" sayfasında ON giriş formu koymak oldu ele düşünüyorum. Ben bir çözüm olduğunu varsayalım ama diğer olasılıklar için arıyorum.

Edit: O $_SERVER['HTTP_REFERER'] şimdiye kadar en iyi çözümdür kullanarak gibi görünüyor. Bunu kullanmak için herhangi bir neden var mı? Ben sahte referer olabilir ama aslında herhangi bir hasara neden olur fark?

3 Cevap

Ben url içerir ve bu benim için çalışıyor giriş formu gizli alanını kullanın. bunu da deneyebilirsiniz.

  1. gizli bir giriş alanı oluşturun.
  2. $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; için giriş alanının değerini ayarlayın
  3. yayınlanmıştır url almak ve bu url için kullanıcı yönlendirme.

Not: HTTP_REFERER zaman ayarlı değil.

Visted bir önceki sayfasını depolamak için en iyi uygulama $_SESSION küresel kullanmaktır. Istatistik dışında bir şey için HTTP_REFERER kullanarak kullanıcı suistimal soruyor kolayca sahte bir referer olabilir beri.

Bir tanımlama çoklu oturum kimliklerini saklamak konusunda bu bağlantıyı kontrol edin. http://bytes.com/groups/php/7630-handling-multiple-sessions

Neden böyle bir URL kullanmak yok /users/login/?r=/questions/? Eğer birlikte dönüş adresini almak için URL kullanmak istemiyorsanız Veya, HTTP yönlendirme kullanabilirsiniz.