- Home
- Categorie
- Coding e Sistemistica
- PHP
- Pagina appena lasciata
-
Pagina appena lasciata
Come potrei memorizzare la pagina appena lasciata del sito?
Ho una var $pag=$_GET['p']; che assegno dal link di un menu per caricare la pagina in cui vado.Nel modulo di contatti volevo portarmi dietro la pagina da cui sono arrivato, così da saperne la provenienza...
Come potrei fare?
Grazie
-
Ciao,
usa la variabile $_SERVER['HTTP_REFERER']
-
@flaviors200 said:
Ciao,
usa la variabile $_SERVER['HTTP_REFERER']Sto provando questo codice con 2 file File1.php col Form e File2.php che elabora il form precedente.
[PHP]File1.php
<form action="File2.php" method="post">
<label>Nome</label><span>*</span>
<input type="text" value="" name="nome"><input type="hidden" value"<?php echo $_SERVER['HTTP_REFERER']; ?>" name="DaDoveProvengo"></div> <input type="submit" value="Invia" name="">
</form>
File2.php
$daqualepag = $_POST['DaDoveProvengo']; // Da quale pagina provengo?
echo $daqualepag;[/PHP]Se arrivo da www.miosito.com/ciao.html vedo nel codice (Visualizza Sorgente del browser) di File1.php il giusto indirizzo...
[PHP]<input type="hidden" value"http://www.miosito.com/ciao.html" name="DaDoveProvengo">[/PHP]MA se Invio il modulo al File2.php questo NON visualizza l'indirizzo... mi da' "bianco" senza errore... non scrive nulla...
Cosa mi sfugge?
-
Ciao,
non ti da nulla perché visualizzi direttamente il file File1.php senza esserci arrivato da un'altra pagina (referral).
O metti nel campo hidden direttamente il nome della pagina corrente con $_SERVER['PHP_SELF'] (nel tuo caso sarà File1.php) oppure ricavi il referral in File2.php tramite $_SERVER['HTTP_REFERER']
Dato che il referer a volte non viene settato (tipo quando visualizzi un link diretto) fai un controllo con la funzione isset() per vedere se esiste.
-
@flaviors200 said:
Ciao,
non ti da nulla perché visualizzi direttamente il file File1.php senza esserci arrivato da un'altra pagina (referral).
O metti nel campo hidden direttamente il nome della pagina corrente con $_SERVER['PHP_SELF'] (nel tuo caso sarà File1.php) oppure ricavi il referral in File2.php tramite $_SERVER['HTTP_REFERER']
Dato che il referer a volte non viene settato (tipo quando visualizzi un link diretto) fai un controllo con la funzione isset() per vedere se esiste.Mah... forse mi sfugge ancora qualcosa...
Io arrivo sicuramente da qualche pagina (come dicevo nell'esempio "ciao.html"). E nel sorgente del browser vedo il valore del campo hidden compilato nel modo corretto.
MA premendo Invio il file successivo (File2.php) non vede nulla. O meglio, con isset() vede che c'è ma la vede vuota.[PHP]
Nel File2.phpif(isset($_POST['DaDoveProvengo'])){ echo "La VAR c'è." . $_POST['DaDoveProvengo'];} else { echo "Mi spiace";}[/PHP]
Mi restituise [HTML]La VAR c'è.[/HTML] e basta... senza scrivere il valore (cioè l'indirizzo "miosito.com/ciao.html)
-
Scusa la tua esigenza è quella di sapere da quale pagina arrivano coloro che ti contattano tramite il modulo, esatto?
Nella pagina del modulo metti il codice per ricavarti il referer
$referer = $_SERVER['HTTP_REFERER'] ?? 'sconosciuto';
questo codice riempie la variabile con il referer se esiste altrimenti con la stringa sconosciuto. Funziona solo con PHP da 7 in sù poiché fa uso dell'operatore null coalesce ??
Nel modulo metti un campo hidden il cui valore è la variabile $referer, cosí quando l'utente invierà il modulo in $_POST troverai pure questo valore.
-
Questo è il mio codice del modulo dei contatti (File1.php)
[PHP]
<?php $referer = "sconosciuto";
if($_SERVER['HTTP_REFERER']!="") {$referer=$_SERVER['HTTP_REFERER'];} ?>
<div><input type="hidden" value"<?php echo $referer ?>" name="DaDoveProvengo"></div>
[/PHP]E questo è il codice del file che lo riceve (File2.php)
[PHP]$daqualepag = $_POST['DaDoveProvengo'];
if(isset($_POST['DaDoveProvengo']))
{ echo "La VAR c'è." . $_POST['DaDoveProvengo'];} else { echo "Mi spiace";}
echo $daqualepag;
[/PHP]Risultato:
"La VAR c'è."
Ma non scrive quale !!!!
-
Non ti passa il valore perché hai dimenticato l'uguale subito dopo value
[HTML]
<div><input type="hidden" value"<?php echo $referer ?>" name="DaDoveProvengo"></div>
[/HTML]
-
@flaviors200 said:
Non ti passa il valore perché hai dimenticato l'uguale subito dopo value
[HTML]
<div><input type="hidden" value"<?php echo $referer ?>" name="DaDoveProvengo"></div>
[/HTML]Nooooooooooooooooooooooo!!!!!!
A tutto guardavo meno che alla dimenticanza di un uguale!!!!!!!!!!!!!!!!!!!!Che dire ... Il problema non era neanche del php!
Grazie mille...