Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

redirect

Cerchi consigli per migliorare il tuo sito? Vuoi aprire un sito in poco tempo?
Discuti con altri webmaster, chiedi chiarimenti ed opinioni in tutta libertà.
Lo spam verrà cancellato.

redirect

Messaggioda yeah782000 » dom nov 20, 2005 1:16 pm

Ragazzi vi faccio direttamente un esempo per farvi capire ciò che vorrei fare ...
Supponiamo di avere 5 pagine ... (pagina1, pagina2 ...ecc)
Io vorrei che la pagina5 sia raggiungibile solo dalla pagina4 la quale deve essere raggiungibile solo dalla pagina3 ...e cosi via ...

Cioè se un utente anzichè accedere alla pagina5 mediante un link sulla pagina4 cerca di accedervi scrivendo l'indirizzo sulla barra miosito/pagina5 viene reinderizzato ad una altra pagina .... cioè non voglio che l'utente acceda a quella pagina digitando l'indirizzo del sito (miosito/pagina5) ma ci può arrivare solo da pagina4 .... spero di essermi spiegato !!!
Come fare il redirect ?
Non abbiate paura di accogliere Gesù nella vostra vita (Karol Wojtyla)
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda M@ttia » dom nov 20, 2005 2:50 pm

Poiché ho letto l'altro messaggio posso contare che posso usare il PHP giusto? Allora ti sarà sufficiente fare:

Codice: Seleziona tutto
$PaginaDiArrivo = getenv('HTTP_REFERER');


Questa variabile avrà ora come valore l'indirizzo della pagina su cui era presente il link che ti ha portato a questa, mentre se ci si è arrivati digitando direttamente l'indirizzo nella barra, sarà vuota.

A questo punto ti basterà fare un controllo sulla variabile et voilà...

Esempio pratico (codice della pagina 5):

Codice: Seleziona tutto
<?php
 
$PaginaDiArrivo = getenv('HTTP_REFERER');

if( $PaginaDiArrivo == 'Http://miosito.com/Pagina4.html' )
 { Mostra la Pagina; }
  else { Vai alla Pagina Home o dove vuoi tu; }

?>


Ciao! [^]
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Messaggioda yeah782000 » dom nov 20, 2005 2:56 pm

M@ttia ha scritto:Poiché ho letto l'altro messaggio posso contare che posso usare il PHP giusto? Allora ti sarà sufficiente fare:

Codice: Seleziona tutto
$PaginaDiArrivo = getenv('HTTP_REFERER');


Questa variabile avrà ora come valore l'indirizzo della pagina su cui era presente il link che ti ha portato a questa, mentre se ci si è arrivati digitando direttamente l'indirizzo nella barra, sarà vuota.

A questo punto ti basterà fare un controllo sulla variabile et voilà...

Esempio pratico (codice della pagina 5):

Codice: Seleziona tutto
<?php
 
$PaginaDiArrivo = getenv('HTTP_REFERER');

if( $PaginaDiArrivo == 'Http://miosito.com/Pagina4.html' )
 { Mostra la Pagina; }
  else { Vai alla Pagina Home o dove vuoi tu; }

?>


Ciao! [^]


Grazie M@ttia !! Si il PHP va bene ma per adesso non ne so molto perciò devo farti due stupide domande !!!!!
Nel tuo esempio else { Vai alla Pagina Home o dove vuoi tu; } sostituiscoo con else {home.html; } giusto ? senza virgolette o apici ?

Poi volevo chiederti ...dove inserisco quesro pezzo di codice ? Nell' HEAD ?

grazie
Non abbiate paura di accogliere Gesù nella vostra vita (Karol Wojtyla)
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am


Messaggioda M@ttia » dom nov 20, 2005 3:59 pm

Dunque premetto subito che le virgolette stanno ad indicare una stringa di testo, quindi 'home.html' lui lo prendo come lo interpreti tu, mentre home.html lui cerca una variabile che si chiami così...

Fatta (un po' male) questa premessa. poi dipende da come vuoi strutturarlo tu... Io ti direi di fare una cosa del genere
(da inserire nell'HEAD diciamo):

Codice: Seleziona tutto
<?php

$PaginaReferente = getenv('HTTP_REFERER');

if( $PaginaReferente == 'http://www.miosito.com/Pagina4.html' )
  {}
  else{ header ("Location: http://www.MegaLab.it"); exit;}

?>


Così se arrivo dalla Pagina4.html non fa "niente" e mi visualizza la pagina, altrimenti non la carica nemmeno e mi reindirizza immediatamente a www.MegaLab.it. (scusa ma ora non ho il tempo di provarlo, ma credo sia esatto). [^]
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Messaggioda yeah782000 » dom nov 20, 2005 5:25 pm

grazie m@ttia ....ho capito il ragionamento ma c'è qualcosa che non va !!!
Allora ecco il codice che sto provando in locale (Apache):

Codice: Seleziona tutto
<?php

$PaginaReferente = getenv('HTTP_REFERER');

if( $PaginaReferente == 'cor59.html' )
  {}
  else{ header ("Location: storia.php"); exit;}

?>


La pagina in cui ho inserito il codice è "cor60.php" ....se l'utente ci arriva da "cor59.html" OK ...dovrebbe visualizzare la pagina altrimenti viene reindirizzato su "storia.php" ....

Se provo però in locale ad andare su "cor60.php" Apache molto gentilmente mi dice:

Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\Apache Group\Apache2\htdocs\mio_sito\cor\cor60.php:7) in C:\Programmi\Apache Group\Apache2\htdocs\mio_sito\cor\cor60.php on line 13

L'unica cosa che ho capito è che la riga 13 a cui fa riferimento è questa:

Codice: Seleziona tutto
  else{ header ("Location: storia.php"); exit;}


Ho provato ad inserire il codice sia nell'HEAD che nel BODY della pagina ma non va ....sia se raggiungo la pagina scrivendo l'indirizzo nella barra del broswer e sia ce ci arrivo da "cor59.html" ...stesso errore .... [boxed]
Non abbiate paura di accogliere Gesù nella vostra vita (Karol Wojtyla)
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda M@ttia » dom nov 20, 2005 5:37 pm

Uhm, sinceramente non so come Apache tratti il Referer in locale, forse dà problemi a causa di quello, dovresti provarlo direttamente su internet (tipo altervista, ecc. o dove lo hai tu), perché in locale non so come si comporti con gli indirizzi... (comunque se da una qualche parte metti echo $PaginaReferente; ti stampa a video il valore della variabile i nquel momento, così ved icome si chiama e cosa mettere esattamente nell'IF...).
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Messaggioda yeah782000 » dom nov 20, 2005 5:43 pm

[applauso] complimenti c'hai preso !!!!! Su Internet (Win2003 Server) funziona !!!!! [applauso] [applauso]
Non abbiate paura di accogliere Gesù nella vostra vita (Karol Wojtyla)
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda M@ttia » lun nov 21, 2005 3:15 pm

[^]
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Messaggioda yeah782000 » lun nov 21, 2005 3:21 pm

un ultima cosa ....

ti faccio un esempio ...

vado su pag1 poi poag2 poi pag3 ... se clicco INDIETRO sul broswer raggiungo la pag2 ...

è corretto perché la pagina è nella cache ?
Non abbiate paura di accogliere Gesù nella vostra vita (Karol Wojtyla)
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda M@ttia » lun nov 21, 2005 3:33 pm

Uhm questa e' una bella domanda, non so come con "indietro del browser" cosideri il referente, prova a farglielo stampare con echo in cima alla pagina e vedi cos'e', eventualmente aggiungi all'if un "or":

if( $PaginaReferente == 'http://www.miosito.com/pag03' || $PaginaReferente == 'http://www.miosito.com/pag05') {} else {Vai a Home}

Ma prima prova che magari il referent con "indietro" fa qualcos'altro...
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Messaggioda yeah782000 » lun nov 21, 2005 3:48 pm

M@ttia ha scritto:Uhm questa e' una bella domanda, non so come con "indietro del browser" cosideri il referente, prova a farglielo stampare con echo in cima alla pagina e vedi cos'e', eventualmente aggiungi all'if un "or":

if( $PaginaReferente == 'http://www.miosito.com/pag03' || $PaginaReferente == 'http://www.miosito.com/pag05') {} else {Vai a Home}

Ma prima prova che magari il referent con "indietro" fa qualcos'altro...


Ti ringrazio per la tua pazienza ...però mi diresti per favore la sintassi esatta di "echo" ? dove lo metto ? [cry]
Non abbiate paura di accogliere Gesù nella vostra vita (Karol Wojtyla)
Avatar utente
yeah782000
Silver Member
Silver Member
 
Messaggi: 1385
Iscritto il: lun apr 19, 2004 10:06 am

Messaggioda M@ttia » mer nov 23, 2005 10:18 am

Semplicemente scrivendo
Codice: Seleziona tutto
echo $PaginaReferente;
Ti stampa a Video il valore di quella variabile in quel momento nel punto dove lo hai inserito, puo iusarlo x fare dei test e vedere che valore ha..
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero


Torna a Sviluppo Web

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising