Tom: Abfrage einer Session Variable während eines laufendens Prozess

Beitrag lesen

Hello,

Ich habe ein Script, was in einer for schleife läuft und nach jedem durchlauf um 2 Sekunden unterbrochen wird. innerhalb dieses Durchlauf wird ein Wert in eine Session Variable geschrieben:

for ($x; $x< 10; $x++)
{
$_SESSION['fortschritt'] = $x;

sleep(2);

}


>   
> Nun möchte ich in einer anderen Datei die entsprechende Session Variable abfragen. Jedoch kann ich dies erst, sobald die for schleife komplett durchglaufen ist und beendet wird (sie läd genauso lange wie der Prozess) .  
  
  

> Oder wird da irgendwas im laufenden Prozess blockiert ? Wie arbeitet da PHP bzw. der Apache intern. Könnt ihr mir helfen ?  
  
Ja, wwenn du session\_start() aufrufst, wird die Session-Datei gesperrt, bis der Sessiondurchlauf  beendet wird. Das findet automatisch am Ende des Scriptes statt.  
  
Wenn Du es mittendrin haben möchtest, musst Du <http://www.php.net/manual/de/function.session-write-close.php> nach dem Schreiben benutzen und  vor dem Schreiben jeweils wieder ein session\_start().  
  
Ich habe aber noch nicht ausprobiert, ob die Session-ID nach dem session\_write\_close() noch bekannt ist. Eventuell musst Du sie die beim ersten mal mit $sid = session\_id(); besorgen und dann die Session mit session\_start($sid) wiedereröffnen.  
  
Das ist aber nur ein gedachtes und mögliches Überraschungsmoment. Ich habe allerdings schon öfter solche erlebt bei PHP.  
  
  
  
  
Liebe Grüße aus Syburg bei Dortmund  
  
Tom vom Berg  
![](http://selfhtml.bitworks.de/Virencheck.gif)  
  

-- 
Nur selber lernen macht schlau  
<http://bergpost.annerschbarrich.de>