PHP: Come ottenere l’URL del referrer?

Ho una pagina (solo indice) dove i clienti possono mandarmi una mail e voglio vedere da quale sito che i visitatori sono provenienti da?

Come posso ottenere Referrer URL con PHP? Ho provato con
$_SERVER['HTTP_REFERER'] ma è vuota per tutto il tempo. Come posso fare questo? Grazie!

Qui è quello che il mio $_SERVER contiene (“—- CENSURATO —-” è stato censurato da me)

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)
}
InformationsquelleAutor sorinu26 | 2013-05-04



3 Replies
  1. 126

    $_SERVER['HTTP_REFERER'] vi darà il referrer URL della pagina se esiste qualche. Se gli utenti utilizzano un segnalibro o visitare direttamente il sito, digitando manualmente l’URL, http_referer sarà vuota. Anche se il utenti post della tua pagina a livello di codice (CURL), quindi non sono obbligato a impostare il http_referer così. Manca del tutto _, è che un errore di battitura?

    • Cosa succede se uso http_refrer e apri in una nuova scheda e poi c’è alcuna possibilità di perdita del http_referer valore???
    • No, non influisce sul HTTP_REFERER valore.
    • Si prega di migliorare la tua descrizione che è il browser con l’invio di questo nell’intestazione della richiesta HTTP o non. Aggiungere anche l’altro caso in cui un browser non inviare un referente della richiesta , vale a dire quando un http link su una pagina web https. È meglio spiegato qui: developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer
  2. 7

    Carattere di sottolineatura. Non spazio.

    $_SERVER['HTTP_REFERER']

    • E sicuramente non accessibile direttamente, come in, non c’è referrer? Ci dispiace, basta chiedere per essere sicuri.
    • Ho provato ad accedere alla mia pagina da un sito web dove ho il link diretto, ma è ancora vuota.
    • Inoltre, assicurarsi che si scrive male, hah. L’effettivo ufficiale variabile è un errore di battitura. Si dovrebbe dire REFERER non REFERRER.
    • Si dovrebbe cercare di dumping tutta la $_SERVER var e assicurarsi che stai ricevendo qualcosa di fuori di esso.
    • Ho inviato tutta la $_SERVER sopra.
  3. 2

    Se $_SERVER['HTTP_REFERER'] variabile non sembra funzionare, quindi è possibile utilizzare Google Analytics o AddThis Analytics.

    • Analytics sarebbe chiaramente una soluzione migliore qui. C’è ovviamente qualcosa di strano con il server-variabile qui. Inoltre, http referer può essere facilmente manipolato.

Lascia un commento