PHP ile orijinal URL yönlendirici alınsın mı?


110

$_SERVER['HTTP_REFERER'];Yönlendiren URL'yi almak için kullanıyorum . Kullanıcı başka bir sayfayı tıklayana ve yönlendiren son sayfaya geçene kadar beklendiği gibi çalışır.

Orijinal yönlendiren URL'yi nasıl saklayabilirim?

Yanıtlar:


137

Bunu bir çerezde (sizin durumunuz için uygunsa) veya bir oturum değişkeninde saklayın.

session_start();

if ( !isset( $_SESSION["origURL"] ) )
    $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];

13
Lütfen aşağıdaki yanıtta @pcp'nin tavsiyesine dikkat edin!
d -_- b

6
Ayrıca http_referer, genellikle olmadığı gibi, var olup olmadığını da kontrol etmeniz gerektiğini unutmayın , bu da "Tanımsız dizin" hatasına neden olabilir.
Justin

17

Johnathan'ın Önerdiği gibi, onu ya bir çerezde ya da bir oturumda kaydetmek istersiniz.

Daha kolay yol, bir Oturum değişkeni kullanmak olacaktır.

session_start();
if(!isset($_SESSION['org_referer']))
{
    $_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}

Bunu sayfanın en üstüne koyun ve site ziyaretçisinin yönlendirdiği ilk yönlendirene her zaman erişebileceksiniz.


4

Sadece mevcut göz atma oturumu için süren bir çerezde saklayın


4

Çerezleri bir referans sayfası deposu olarak kullanmak çoğu durumda çok daha iyidir, çünkü çerezler tarayıcı kapanıncaya kadar yönlendireni tutacaktır (ve tarayıcı sekmesi kapalı olsa bile tutacaktır), bu nedenle kullanıcı sayfayı açık bıraktıysa diyelim hafta sonlarından önce ve birkaç gün sonra geri döndüyseniz, oturumunuz muhtemelen sona erecek, ancak çerezler hala orada olacak.

Bu kodu bir sayfanın başlangıcına koyun (herhangi bir html çıktısının önüne, çünkü tanımlama bilgileri yalnızca herhangi bir echo / print'den önce düzgün bir şekilde yerleştirilecektir):

if(!isset($_COOKIE['origin_ref']))
{
    setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}

Daha sonra ona erişebilirsiniz:

$var = $_COOKIE['origin_ref'];

Ve @pcp'nin $ _SERVER ['HTTP_REFERER'] tanımlama bilgisinden kaçmak için önerdiklerine ek olarak, tanımlama bilgisi kullanırken, her istekte $ _COOKIE ['origin_ref'] 'den kaçmak isteyebilirsiniz.


-4

bunu dene

(isset ($_SERVER['HTTP_CLIENT_IP']) ? 
    $_SERVER['HTTP_CLIENT_IP'] : 
    (isset ($_SERVER['HTTP_X_FORWARDED_FOR']) ? 
        $_SERVER['HTTP_X_FORWARDED_FOR'] : 
        $_SERVER['REMOTE_ADDR']
    )
)

Bu, almakla ilgili IP ADDRESSancak gönderi, REFERERsöz konusu kişiye yönlendiren web sayfasıyla ilgili.
Sanxofon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.