Domanda

Sto creando un sito Web e su una determinata pagina, desidero rimandare l'utente alla pagina precedente. Sono abbastanza nuovo in PHP / HTML e ho usato del codice esistente per idee e aiuto.

Il codice esistente utilizza il seguente metodo:

if (! empty($HTTP_REFERER)) 
{
    header("Location: $HTTP_REFERER");
} else 
{
    header("Location: $CFG->wwwroot");
}

Tuttavia, quando utilizzo questo codice, HTTP_referer viene sempre considerato vuoto e l'utente reindirizzato alla pagina principale. Qualche difetto evidente in questo codice?

È stato utile?

Soluzione

Devi usare:

Devi usare:

<*>SERVER['HTTP_REFERER']

Altri suggerimenti

Non fare affidamento sul fatto che HTTP Referrer sia un campo valido o addirittura non vuoto. Le persone possono scegliere di non avere questo set lasciando alcun controllo per quella variabile che va sul lato vuoto della clausola IF-ELSE.

Puoi evitare questo inviando un parametro nell'URL o nei parametri POST che contenga un valore che puoi utilizzare per reindirizzare l'utente a.

isset ($ _ SERVER ['HTTP_REFERER'])? $ _SERVER ['HTTP_REFERER']: '';

Se vuoi rinviare la persona alla pagina precedente e farla funzionare indipendentemente dal fatto che il referrer sia impostato correttamente, puoi aggiungere un parametro GET all'URL (o POST) .. dovrai codificare l'URL. Qualcosa come

http://www.domain.com.au/script.php?return=http%3a%2f%2fwww.domain.com.au%2fthis-is-where-i-was % 2f

Puoi usare la funzione urlencode () di PHP.

Nota anche che l'intestazione del referer potrebbe essere vuota o mancante, quindi non dovresti fare affidamento su di essa ..

Dovresti usare

Dovresti usare

<*>

Comunque guarda la configurazione register_globals in php.ini, dovrebbe essere disattivata per motivi di sicurezza. Puoi leggere di più sul sito del manuale PHP .

SERVER['HTTP_REFERER']

Comunque guarda la configurazione register_globals in php.ini, dovrebbe essere disattivata per motivi di sicurezza. Puoi leggere di più sul sito del manuale PHP .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top