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.
Hallo Tom,
hab das ganze mal getestet. Prinzipiell läuft das bestens, ich kann die ganze Session freigeben und im nächsten durchlauf wieder öffnen und neu beschreiben:
for ($x; $x< 10; $x++)
{
session_start();
$_SESSION['fortschritt'] = $x;
session_write_close();
}
Ich kann nun auch in der entsprechenden info datei die Statusinformation abrufen.
Ein Haken hat die Geschichte aber:
eine logische Konsequenz ist natürlich nun, das ich im PHP Fehlermeldungen bekomme, die mir sagen das ich den Session Cookie nicht mehr senden kann, da der Header ja schon an mich raus gegangen ist. Der cache limiter kann desswegen natürlich auch nicht gesendet werden. Irgendeine Idee ob man das Senden der Session cookies blockieren kann ? ich Brauch sie im 2 Durchlauf ja nicht mehr senden, da sie lokal vorhanden sind.