2013-05-04 19 views
34

Müşterilerin bana e-posta gönderebildiği ve ziyaretçinin hangi web sitesinden geldiğini görmek istediğim bir sayfam var (yalnızca dizin).PHP: Yönlendiren URL nasıl alınır?

PHP ile Referrer URL'u nasıl edinebilirim? $_SERVER['HTTP_REFERER'] ile denedim, ancak her zaman boş. Bunu nasıl yapabilirim? Teşekkür ederim! İşte

array(31) { 
    ["DOCUMENT_ROOT"]=> 
    string(33) "/home/anything/public_html/design" 
    ["GATEWAY_INTERFACE"]=> 
    string(7) "CGI/1.1" 
    ["HTTP_ACCEPT"]=> 
    string(129) "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1" 
    ["HTTP_ACCEPT_ENCODING"]=> 
    string(13) "gzip, deflate" 
    ["HTTP_ACCEPT_LANGUAGE"]=> 
    string(14) "en-US,en;q=0.9" 
    ["HTTP_CACHE_CONTROL"]=> 
    string(8) "no-cache" 
    ["HTTP_CONNECTION"]=> 
    string(10) "Keep-Alive" 
    ["HTTP_COOKIE"]=> 
    string(189) "__utma=76630272.1468291432.1367655794.1367669576.1367674157.3; __utmb=76630272.1.10.1367674157; __utmc=76630272; __utmz=76630272.1367655794.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)" 
    ["HTTP_HOST"]=> 
    string(25) " ---- CENSORED ---- " 
    ["HTTP_USER_AGENT"]=> 
    string(57) "Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.15" 
    ["PATH"]=> 
    string(13) "/bin:/usr/bin" 
    ["QUERY_STRING"]=> 
    string(0) "" 
    ["REDIRECT_STATUS"]=> 
    string(3) "200" 
    ["REMOTE_ADDR"]=> 
    string(10) "5.15.68.79" 
    ["REMOTE_PORT"]=> 
    string(5) "57897" 
    ["REQUEST_METHOD"]=> 
    string(3) "GET" 
    ["REQUEST_URI"]=> 
    string(12) "/referer.php" 
    ["SCRIPT_FILENAME"]=> 
    string(45) "/home/anything/public_html/design/referer.php" 
    ["SCRIPT_NAME"]=> 
    string(12) "/referer.php" 
    ["SERVER_ADDR"]=> 
    string(13) " ---- CENSORED ---- " 
    ["SERVER_ADMIN"]=> 
    string(35) " ---- CENSORED ---- " 
    ["SERVER_NAME"]=> 
    string(25) " ---- CENSORED ---- " 
    ["SERVER_PORT"]=> 
    string(2) "80" 
    ["SERVER_PROTOCOL"]=> 
    string(8) "HTTP/1.1" 
    ["SERVER_SIGNATURE"]=> 
    string(189) " 
Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at ---- CENSORED ---- Port 80 

" 
    ["SERVER_SOFTWARE"]=> 
    string(125) "Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635" 
    ["UNIQUE_ID"]=> 
    string(24) "UYUNcUPeiDsAABkR2eYAAAAj" 
    ["PHP_SELF"]=> 
    string(12) "/referer.php" 
    ["REQUEST_TIME"]=> 
    int(1367674225) 
    ["argv"]=> 
    array(0) { 
    } 
    ["argc"]=> 
    int(0) 
} 
+0

Olası bir kopyasının [Bu kullanıcının Google'dan geldiğini bulmak için $ \ _ SERVER \ ['HTTP \ _REFERER' \] kullanabilir miyim?] (Http://stackoverflow.com/questions/10613025/how-can-i -use-serverhttp-referer-to-find-o-kullanıcı-geldi-google) –

cevap

99

$_SERVER['HTTP_REFERER'] size yönlendiren sayfanın URL'sini verecektir. Kullanıcılar bir yer işareti kullanırsa veya URL’yi manuel olarak yazarak doğrudan sitenizi ziyaret ederse, http_referer boş olacaktır. Ayrıca, kullanıcıları sayfanıza programlı olarak (CURL) gönderiyorlarsa, http_referer'ı da ayarlamak zorunda değiller. Tüm _'u özlüyorsun, bu bir yazım hatası mı?

+1

Üzgünüm, yanlış yazdım, senaryoda iyi yazılmış ama boş. – sorinu26

+1

@ sorinu26: Senaryonuzda hala yazım hatası var '$ _ [' not '$ ['. Var_dump ($ _ SERVER); 'yapmayı deneyin. Sorunuzu – OptimusCrime

+3

numaralı soruya gönderin. – sorinu26

5

çizgi (bana göre sansür edilir "---- ---- CENSORED") benim $_SERVER içeren şeydir. Boşluk değil. herhangi orada varsa

$_SERVER['HTTP_REFERER']

+1

Üzgünüz, ben yanlış yazdım, benim senaryoda iyi yazılmış ama boş. – sorinu26

+1

Ve kesinlikle doğrudan erişilebilir değil, olduğu gibi, herhangi bir refakatçi yok mu? Üzgünüm, emin olmak için sormak zorundayım. – bearfriend

+0

Sayfamı doğrudan bağlantım olduğu bir web sitesinden almaya çalıştım ancak hala boş. – sorinu26

0

$_SERVER['HTTP_REFERER'] değişkeni işe yaramazsa, Google Analytics veya AddThis Analytics'u kullanabilirsiniz.

+1

Analiz, burada daha iyi bir çözüm olacaktır. Açıkçası sunucu değişkeninde tuhaf bir şey var. Ayrıca, http-referer kolayca manipüle edilebilir. – OptimusCrime

İlgili konular