module di contatto comprensivo di riferimento della pagina precedente

Ho un module di contatto php con POST e voglio includere automaticamente la pagina di riferimento sul module, cioè il sito Web che collega al module di contatto. Questo normalmente sarebbe all'interno del mio sito web.

Per esempio,

www.website.com/nothere.php restituisce 404.php (con www.website.com/nothere.php come indirizzo)

sulla pagina 404 ho un link a feedback.php che è un module di contatto.

Voglio l'URL di riferimento (in questo caso "www.website.com/nothere.php") incluso nel module inviato.

Capisco che posso usare questo codice:

$ref = getenv("HTTP_REFERER"); 

Così, l'ho aggiunto al php in cima alla pagina (qui c'è uno snippet):

 $SendTo = "[email protected]"; $Subject = "Website Feedback"; $FromString = "From: ".$_POST['eaddress']."\r\n"; $ref = getenv("HTTP_REFERER"); 

Ma come posso codificare l'indhold in modo che il referral sia printingto sull'e-mail?

 $Indhold .= "Referring page: ".$_POST['$????']."\n"; 

Qualcuno può aiutare con quello che ho bisogno di aggiungere alla linea di cui sopra? O devo andare su questo in un modo diverso?

Grazie molto! Andy

Inserisci un field di input nascosto nel module di contatto, che contiene il referente:

 <form ...> ... <input type="hidden" value="<?php echo $_SERVER['HTTP_REFERER'] ?>" name="referer" /> ... </form> 

Quindi puoi accedervi con $_POST['referer'] quando invii l'email.

Beh … puoi usare $ _SERVER ['HTTP_REFERER'] per questo. Per includerlo basta scrivere qualcosa come:

 <input type="hidden" name="referer" value="<?php echo $_SERVER['HTTP_REFERER']; ?>" /> 

nel tuo module di contatto

E poi, quando componi il messaggio, fai semplicemente:

 $Indhold .= 'Referring page: '.$_POST['referer']."\n"; 

Prima di fare qualsiasi cosa dovresti sapere che $_SERVER['HTTP_REFERER'] è impostato dal client. Ciò significa che può contenere qualsiasi cosa. Se hai davvero bisogno di conoscere il referrer, assicurati alless che si tratti di un URL e che non punta a nessun sito web.

Per esempio:

 $ref = filter_input(INPUT_SERVER, 'HTTP_REFERER', FILTER_SANITIZE_URL); if ( ! preg_match('/^http:\/\/website.com/', $ref)) { $ref = '(Unknown URL...)'; } 

Se si utilizza semplicemente HTTP_REFERER senza prima verificarlo, alcuni malintenzionati possono impostarlo su un URL che installa un virus sulla macchina. In altre parole: non usarlo a less che non lo controlli.