Bağlantı vs Adres çubuğu giriş

4 Cevap php

Navigasyon yöntemini belirlemek için bir istek sorgulamak için bir yolu var mı?

(Bir lamba yapılandırma, PHP kullanarak)

Diğer bir deyişle ... Ben giriş eli adres çubuğuna yazdığınız, veya bir bağlantı / imi kullanılmış olup olmadığını bilmek istiyorum.

4 Cevap

Sen kişinin gidilmiştir olan URL içerecek $_SERVER['HTTP_REFERER'] değişkeni kontrol edebilirsiniz. Ben bu değişken boş olacağını sanıyorum ama ben, bir yer imi seçebilir veya manuel URL girerseniz ne olur emin değilim.

Olsa da, dediği gibi the manual:

Geçerli sayfaya kullanıcı ajanı sevk sayfasının adresi (varsa). Bu kullanıcı aracısı tarafından ayarlanır. Her kullanıcı bu koyacaktır, ve bazı bir özelliği olarak HTTP_REFERER değiştirme olanağı sağlar. Kısacası, gerçekten güvenilir olamaz.

Güvenilir, yapamazsın.

Eğer deneyebilirsiniz bir yöntem genellikle kullanıcı nereden geldiğini belirtmek için tarayıcı tarafından gönderilen referer başlıklar (o spec nasıl yazıldığını olduğu) vardır. PHP, bu $_SERVER['HTTP_REFERER'] mevcuttur.

En modern tarayıcılarda (Google Chrome ve Firefox test ettik) bağlantı tıklama bir referer başlık göndermek ve not doğrudan giriş üzerinde - kullanıcının ayarları derseniz ki genellikle varsayılan olarak yapmak, hangi vardır.

Başka bir seçenek, gerçekten umurumda ne kadar bağlı olarak, URL belirteci kullanıcının oturumunda belirteci maçları görmek, bir talebi alan üzerinde bağlantı ve URL'ye rasgele oluşturulmuş oturum değişkeni çeşit eklemek için . Eğer öyleyse, oraya gitmek. Eğer değilse, bu linki kopyalanıp yapıştırılmış oldu.

Tabii ki, bu yöntemlerin hepsi kolayca dayak edilebilir ve sunucu aptal olabilir. Onlara güvenmeyin.

Onlar tarayıcı yönlendirme koyacaktır bir bağlantıyı tıklarsanız, kullanarak bir yönlendirme başlığı varlığını tespit olabilir

$_SERVER['HTTP_REFERER'] 

ve ayarlanmış olup olmadığını görmek için kontrol. Bu boş ise kişi URL yazdığınız yönlendirmeleri veya temizlemek için bir tarayıcı uzantısı sahiptir ya. Size bu bir bir çözüm alırsınız gibi yaklaşık olarak yakındır.

Hakkında yapabileceğiniz tüm $SERVER['HTTP_REFERER'] [sic] bakmak. Doğrudan bağlantılı olsaydı, orada size bağlı sayfanın URL'sini bulacaksınız iyi bir şans var. Orada olsa almazsınız birçok durumlar vardır, bu yüzden bunu güvenemez.

IE bu önceden kullanıcı sizi imi önce bazı verileri kalıcı bir saveFavorite davranış kullanıldığında eğer, bir yer imi yüklenir algılamak mümkündür. Ama oldukça çirkin.