PDA

View Full Version : [PHP] Impostare provenienza (referer?) obbligatorio


Batallo12
27-10-2008, 18:10
salve a tutti e grazie preventivamente dell'aiuto
non riesco a fare questa cosa:

ho un forum (in vbulletin) e desidererei che la gente potesse accedervi unicamente cliccando sull'apposito link dalla home page, e non direttamente dall'indirizzo o dal bookmark del forum stesso

immagino sia una questione di referer...ho googlato un bel po' ma non sono riuscito a venire a capo della questione

c'è modo per impostare questa "provenienza obbligatoria"?

grazie di nuovo

malocchio
28-10-2008, 00:09
Si usa la variabile superglobale del server, che contiene le informazioni http:


$home = "http://{$_SERVER[SERVER_NAME]}/index.php" //attento devi mettere anche il nome del file, di solito index.html o index.php
if ( $_SERVER["HTTP_REFERER"]!==$home ) {
faiQualcosaDiFastidioso();
}


$_SERVER['SERVER_NAME'] contiene il nome host del tuo server.
Se lo sai già e non lo vuoi cambiare mettilo in chiaro, es $home = 'http://www.tuosito.com/index.php';

cionci
28-10-2008, 10:57
Attenzione che $_SERVER[SERVER_NAME] non è sempre valorizzata.
Ti conviene scrivere l'url in chiaro. In ogni caso dovresti estrapolare la parte relativa al nome del server da $_SERVER["HTTP_REFERER"], altrimenti il controllo risulta soddisfatto solo se provieni dalla pagina index.php.
Al limite può anche andare bene così, ma dovresti mettere un flag nella sessione che ti indica che sei già passato dalla home page del sito e non effettua nuovamente il controllo.

Batallo12
30-10-2008, 14:52
dunque, intanto vi ringrazio moltissimo
non c'ho capito un granchè ma prima di stressare voi di nuovo faccio delle prove, magari ne cavo qualcosa :D


grazie ancora!