Funziona quando ho ingresso
header("Location: http://www.google.com");
ma non funziona quando ho
header("Location: $_SERVER['HTTP_REFERER']");
voglio reindirizzare la pagina a qualunque pagina è venuto.
Funziona quando ho ingresso
header("Location: http://www.google.com");
ma non funziona quando ho
header("Location: $_SERVER['HTTP_REFERER']");
voglio reindirizzare la pagina a qualunque pagina è venuto.
Provalo: :)
if (!empty($_SERVER['HTTP_REFERER']))
header("Location: ".$_SERVER['HTTP_REFERER']);
else
echo "No referrer.";
Tuttavia, per determinare quale utente pagina venuto, io preferisco usare variabile di sessione, che viene azzerato ad ogni pagina:
session_start();
echo "Previous page:", $_SESSION['loc'];
$_SESSION['loc']=$_SERVER['PHP_SELF'];
ps: Funziona solo per le pagine locali, non puoi tracciare altri siti web.
questa è una caratteristica del browser, e qualsiasi browser gentile invierà la corretta intestazione (anche se vari strumenti di 'sicurezza' hanno la priorità su questa con un referer falso).
È specifico del browser, quindi non tutte le combinazioni di browser/software di sicurezza invieranno al server. È meglio impostare una variabile di sessione ad ogni caricamento della pagina per determinare quale pagina l'utente è venuto da (o qualcosa di simile con un po 'più logica)
quindi fai una sessione dell'URL corrente su ogni pagina? –
Si potrebbe provare:
header("Location: {$_SERVER['HTTP_REFERER']}");
ho avuto problemi con le espressioni variabili che contengono virgolette nelle stringhe senza parentesi.
È inoltre necessario guardare per $_SERVER['HTTP_REFERER']
semplicemente non essere impostato. Alcuni user-agent non lo impostano, alcuni strumenti privati lo mascherano e devi gestire le persone che arrivano alla tua pagina senza un referrer.
Ecco una soluzione semplice. controllo e vedere cosa $ _SERVER [ 'HTTP_REFERER'] sta dando voi e se il suo set poi si può reindirizzare e se non mettere una caduta di nuovo qualcosa di url del tipo:
if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != ""){
$url = $_SERVER['HTTP_REFERER'];
}else{
$url = "YOUR INDEX PAGE OR SOMETHING";
}
header("Location: ".$url);
Semplicemente è possibile utilizzare
if(isset($_SERVER['HTTP_REFERER'])){
header("Location:".$_SERVER['HTTP_REFERER']."");
}
header("Location: $_SERVER[HTTP_REFERER]");
Senza le virgolette singole. Questo è il modo più rapido per accedere e concatenare i valori dell'array senza codice di concatenazione extra.
Non tutti i browser inviano un riferimento e altri inviano dati falsi. Inoltre, non è possibile utilizzare le virgolette su una chiave di array all'interno di una stringa con doppi apici del genere. prova 'header (" Location: {$ _SERVER ['HTTP_REFERER']} ");' invece. –
Hai controllato il contenuto di '$ _SERVER ['HTTP_REFERER']'? – PeeHaa
qual è l'output di questa stringa: echo "Posizione: $ _SERVER ['HTTP_REFERER']"; ? –