Newsgroup: it.comp.www.php
Titolo: header .. sempre il più veloce.

Salve a tutti,
Ho uno script che sfrutta headers simili a questo:
header("Location: 
http://localhost/login/login.php?origin=$origine
")
Il problema sta nell' fatto che molto spesso il redirect verso una 
pagina avviene più velocemente della scrittura sul file di sessione di 
una variabile, che verrà poi controllata dalla pagina indicata dall' 
header Location.
Vi chiedo se è possibile quindi RITARDARE, e in che modo, il redirect di 
una manciata di secondi, giusto il tanto di essere sicuro che nel 
frattempo sia stata scritta la variabile nel file di sessione che la 
pagina indicata dall' Header Location dovrà controllare.
Vi ringrazio per l'eventuale aiuto.
Saluti
TB

 dall' header Location.
Il manuale, questo sconosciuto ...
http://www.php.net/manual/en/ref.session.php#40366
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

 header Location.
Prova a usare la funzione session_write_close() immediatamente
prima della funzione header(). 
http://it.php.net/manual/it/function.session-write-close.php
Ciao.
-- 
Long John

 Ciao.
Potrebbe essere un ' idea.
L'unica cosa che non capisco e che parla di chiudere la sessione una 
volta scritti i dati.
Questo significa che la pagina sucessiva creerą una nuova sessione o
solo che viene chiusa la scrittura sul file di sessione dopo tale comando?
Grazie ancora una volta.
TB

 solo che viene chiusa la scrittura sul file di sessione dopo tale comando?
Significa che la scrittura nel file di sessione viene "flushed" e
chiusa.
Il tuo problema è, semplicemente, che quando arriva la nuova richiesta
la scrittura non è ancora consolidata dal processo precedente, il
quale per ragioni di multithreading si comporta in modo prudente.

 
Esattamente, infatti se vedo la cartella dei file di sessione, il file 
della sessione corrente si "Riempie" della variabile che gli ho detto di 
scrivere solo circa un secondo dopo che intanto sono stato reindirizzato 
sulla pagina dettata dall' header location.
Accade così che la pagina dove sono stato reindirizzato controlla la 
variabile di sessione che, non essendo ancora stata materialmente 
scritta, fallisce sempre il controllo.
La mia idea era quella , se fosse stato possibile, di impostare un 
parametro proprio all'interno del comando dell' header per ritardare un 
minimo il reindirizzamento, senza dover ricorrere a soluzioni drastiche.
Tenete presente che attualmente il problema mi si presenta in locale, 
dove la velocità di carica delle pagine dovrebbe essere maggiore,
ma sarebbe scocciante se si presentasse anche una volta che le pagine 
sono in hosting.
In ultimo ho provato anche la soluzione "session_write_close();" ma 
senza nessun differente risultato.
Sono un po accorto di idee anche perchè la sintassi è corretta, ma il 
reindirizzamento è sempre un pelo più veloce della scrittura sul file di 
sessione :P
Grazie a tutti.

io ho sostituito il comando header con javascript
print "<script language='javascript'>";
           print"myTime = '500';";
           print"myURL = index.php';";
           print"function Timer() { self.setTimeout('self.location.href
= myURL;',myTime); };";
           print"myTimer();";
print"</script>";
per variare il tempo basta  modificare il valore di redirTime,  la
utilizzo per poter visualizzare un messaggio prima del reindirizzamento
Ciao
gian-gian

gian-gian ha scritto:

La tua idea in fondo non è per niente male,
ma vorrei essere certo che non ci fossero problemi di accessibilità.
Tramite questo metodo sei sicuro al 100% che questa istruzione sarebbe 
accessibile a Chiunque???
Nelle mie pagine utilizzo solo un altro script in Javascript, in attesa 
di affinare la stessa funzione in Php puro,
perchè ho sempre il terrore che arrivi Pinco Pallino e non possa 
accedere a tali informazioni.
Se javascript gestisce ad esempio una funzione cruciale per la pagina e 
tale informazione non fosse per qualsiasi motivo acessibile,
sarebbero grosse grane.
Hai qualche rassicurazione in merito??
Grazie anche a te per l'aiuto

 senza nessun differente risultato.
Ti sei ricordato di passare esplicitamente il SID?


 
No, potresti spiegarmi??
ho aggiunto unicamente la riga "session_write_close();" dopo aver 
assegnato una
variabile di sessione, come visto in un esempio.
Ho scordato qualcosa??
Grazie Setec.
TB

 No, potresti spiegarmi??
http://www.php.net/manual/en/ref.session.php#40366
