problema con la funzione sleep

dk-wamp

Nuovo Utente
18 Nov 2009
5
0
0
wellà torno alla carica per un problemino..

ho questo script che mi fa il redirect di una pagina web (non uso la funzione refresh perchè deve aggiornarsi solo un frame di una pagina)

<?php sleep(3);
$link = file("linkz.txt");
header("Location:".$link[0]); ?>


questo script è perfettamente funzionante.
il mio problema è che se metto qualsiasi cosa prima dello script .. un immagine o anche una sola scritta lo script si blocca.
ho provato anche ad usare una pagina per richiamare lo script con include ma anche se metto una scritta nell altra pagina lo script si blocca..

(quello che vorrei fare è manterenere la pagina entrante in un frame però lasciando una scritta prima tipo ''la pagina sarà caricata in 5 sec.'' )


enciclopedia dei dilemmi inutili di dk-wamp. richiesta di aiuto.. come sempre..
 
Ultima modifica:

lespaul

Utente Attivo
30 Lug 2009
91
6
0
www.simplesoft.it
Ciao, mi sembra che la funzione sleep di php ritarda l'esecuzione dello script, quindi la generazione viene ritardata, cioè il codice html viene generato dopo tot secondi che inserisci nello sleep. Penso che per fare quello che vuoi tu, dovresti utilizzare javascript,cioè effettuare questo ritardo lato client per lanciare il messaggio ''la pagina sarà caricata in 5 sec.''
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Se metti qualcosa prima del redirect logicamente lo script si blocca perché vengono inviati degli header, e quindi la funzione header() non può più impostarne altri. Fai così:
PHP:
<?php sleep(3);
$link = file("linkz.txt");
echo "La pagina sar&agrave; caricata in 5 secondi...";
echo '<meta http-equiv="refresh" content="0;'. $link[0] .'" />';
?>
E prega che funzioni :D
Scusa, ma a che ti serve visualizzare il messaggio che la pagina verrà caricata in 5 secondi se viene caricata istantaneamente?
 

dk-wamp

Nuovo Utente
18 Nov 2009
5
0
0
Se metti qualcosa prima del redirect logicamente lo script si blocca perché vengono inviati degli header, e quindi la funzione header() non può più impostarne altri. Fai così:
PHP:
<?php sleep(3);
$link = file("linkz.txt");
echo "La pagina sar&agrave; caricata in 5 secondi...";
echo '<meta http-equiv="refresh" content="0;'. $link[0] .'" />';
?>
E prega che funzioni :D
Scusa, ma a che ti serve visualizzare il messaggio che la pagina verrà caricata in 5 secondi se viene caricata istantaneamente?
avere un ritardo nel frame per poter dare più rilevanza al frame superiore.

grazie infinite :D
 

dk-wamp

Nuovo Utente
18 Nov 2009
5
0
0
ah, cmq ho dovuto spostare il messaggio prima dell sleep dato che la scritta deve rimanere per tot secondi visualizzata.

cmq perfetto. ciao ciao