PDA

View Full Version : [PHP]redirect...


GHz
29-04-2005, 23:46
Scusate la domanda scema, ma non risesco a far funzionare in redirect il php :muro:

Scrivendo questo:

header("Location: http://www.gogle.it");

Quando lo va ad eseguire esce sto messaggio e non fa il redirect:

Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\Apache Group\Apache2\htdocs\index.php:6) in C:\Programmi\Apache Group\Apache2\htdocs\index.php on line 9

Perchè? :muro: :help:

VICIUS
30-04-2005, 00:20
Probabilmente hai gia fatto qualche output. Controlla che non ci siano echo, print prima di quella chiamata ad header. Ricorda che anche le righe vuote prima del tag <?php o dopo ?> sono convertite in echo e quindi sono effettivamente degli output.

ciao ;)

GHz
30-04-2005, 00:25
Grazie....ho risolto spostando tutto incima....avevo messo il redirect nel body....:fagiano:

davidino80
14-05-2005, 12:40
scusate riprendo il thread..

ma se a me servisse fare un redirect alla pagina precedente dopo aver validato o meno un utente? posso usare questo codice cmq?

ad esempio:

- controllo utente

se OK vai alla pagine precedente tramite index.php?user=nomeutente
altrimenti torna alla pagina precendete senza nulla

come potrei fare?
grazie

anonimizzato
14-05-2005, 13:11
certo esegui tutte le istruzioni PHP necessarie per il controllo utente e poi fai un redirect con la funzione header alla pagina precedente (passando magari le info sull'utente stesso).

L'attenzione da riporre è solo quella di NON creare output verso il browser prima di inviagli un HEADER.

davidino80
14-05-2005, 15:36
certo esegui tutte le istruzioni PHP necessarie per il controllo utente e poi fai un redirect con la funzione header alla pagina precedente (passando magari le info sull'utente stesso).

L'attenzione da riporre è solo quella di NON creare output verso il browser prima di inviagli un HEADER.
perfetto.. chiedo troppo di inserire un delay di 5 sec prima di fare il redirect?
grazie

Futuregames
14-05-2005, 22:01
<?
echo"fra 5 secondi sarai reindirizzato";
sleep(5);

Header("location http://www.lol.it");
?>

GHz
14-05-2005, 22:19
<?
echo"fra 5 secondi sarai reindirizzato";
sleep(5);

Header("location http://www.lol.it");
?>

Ma se fai l'echo poi non funge il redirect :mbe:

Futuregames
14-05-2005, 23:49
funge...^^ gli errori di header sono sul file di destinazione nn su quello in cui attui la funzione ;)


e poi prima di parlare provarlo? :rolleyes:

GHz
15-05-2005, 01:56
funge...^^ gli errori di header sono sul file di destinazione nn su quello in cui attui la funzione ;)


e poi prima di parlare provarlo? :rolleyes:

Certo che l'ho provato....a me non funge...guarda cosa stampa:

fra 5 secondi sarai reindirizzato
Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\Apache Group\Apache2\htdocs\redirect.php:2) in C:\Programmi\Apache Group\Apache2\htdocs\redirect.php on line 5

Futuregames
15-05-2005, 13:54
si ma li dall'errore che vedo io tu hai reindirizzato alla pagina stessa e alla linea 2 vi è un errore...

nn devi mettere spazi prima del <? e dopo il ?>

GHz
15-05-2005, 15:51
si ma li dall'errore che vedo io tu hai reindirizzato alla pagina stessa e alla linea 2 vi è un errore...
:mbe: non ho reindirizzato alla stessa pagina....l'errore lo da perchè non riesce ad eseguire il redirect perchè alla linea 2 c'è stato l'echo!
nn devi mettere spazi prima del <? e dopo il ?>
Non ci sono spazi...guarda l'allegato....

Questo l'errore:
fra 5 secondi sarai reindirizzato
Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\Apache Group\Apache2\htdocs\redirect.php:2) in C:\Programmi\Apache Group\Apache2\htdocs\redirect.php on line 4

Ma te l'hai provato?

cionci
15-05-2005, 16:05
funge...^^ gli errori di header sono sul file di destinazione nn su quello in cui attui la funzione ;)


e poi prima di parlare provarlo? :rolleyes:
No...non può funzionare...gli header devono essere terminati prima di qualsaisi echo...

Un redirect a tempo lo puoi fare con javascript...

Ste_000
15-05-2005, 16:17
per risolvere il problema del passaggio header ecc..... metti ob_start(); all'inizio della pagina e nn hai problemi ;) in pratica "bufferizza" tutto quello che c'è :)

e il redirect cmq basta farlo in html :fagiano:

cionci
15-05-2005, 16:28
Comunque la pagina non si visualizzerebbe, visto che il redirect tramite gli header è immediato...

Ste_000
15-05-2005, 17:28
si beh ob_start è una soluzione che nn si usa per quello dicevo che puo servire......cmq per me la cosa migliore è farlo da semplice html