Supponiamo che l'URL del mio sito sia dato come collegamento ipertestuale su qualche pagina su Internet; quella pagina potrebbe essere qualsiasi cosa su internet - blog, orkut, yahoo, persino stackoverflow, ecc., e qualcuno fa clic su di esso e visita il mio sito. Quindi possiamo sapere, usando php, l'url precedente da cui il visitatore è arrivato alla mia pagina?Come ottenere l'url precedente usando PHP
risposta
Utilizzare l'intestazione $_SERVER['HTTP_REFERER']
, ma tenere presente che chiunque può spoofarlo in qualsiasi momento indipendentemente dal fatto che abbia fatto clic su un collegamento.
$_SERVER['HTTP_REFERER']
è la risposta
$_SERVER['HTTP_REFERER']
vi darà URL incompleti.
Se si desidera http://bawse.3owl.com/jayz__magna_carta_holy_grail.php
, $_SERVER['HTTP_REFERER']
, è possibile fornire solo http://bawse.3owl.com/
.
Ma è possibile creare un proprio collegamento per ogni URL.
Esempio: http://example.com?auth=holasite
In questo esempio il sito è: example.com
Se qualcuno aperto che collegano è darvi il valore holasite per la variabile auth.
Quindi solo $ _GET ['auth'] e si dispone della variabile. Ma dovresti creare un database per memorizzarlo e autorizzarlo.
come: $ holasite = http://holasite.com (Si potrebbe utilizzare mysql troppo ..)
E proprio abbinarlo, e si ha l'url.
Questo metodo è un po 'più complicato, ma funziona. Questo metodo è utile per un'autenticazione del sistema refferal. Ma dov'è il nome del sito, dovresti scrivere un id e lavorare con quell'id.
Non riesco ancora ad aggiungere un commento, quindi ho voluto condividere che HTTP_REFERER non è sempre inviato.
È una soluzione cross-browser? – NullPointer
@NullPointer: Come ho detto nella mia risposta, chiunque può spoofarlo, quindi suppongo che la risposta alla tua domanda sia no. – BoltClock
No. Volevo chiedere in modo diverso. – NullPointer