2017-04-18 1 views
0

Gibt es eine Möglichkeit, einen Fehler zu erkennen und zu melden, wenn die PHP-Sitzung nicht beschreibbar ist?Einen Fehler ausgeben, wenn die PHP-Sitzung nicht beschreibbar ist?

In einer großen Codebasis kann es schwierig sein zu wissen, ob session_write_close() vor einer Änderung der Sitzung aufgerufen wurde. Und wenn Sie denken, dass Sie die Sitzung aktualisieren, könnte es tatsächlich nicht beschreibbar sein, und dies kann unbemerkt bleiben.

+2

'session_status sein()! == PHP_SESSION_ACTIVE'? – frz3993

+0

@ frz3993 Das sieht gut aus. Vielen Dank. Warum reichen Sie es nicht als Antwort ein? – Haluk

Antwort

1

Sie können nach dem Status der Sitzung suchen.

if (session_status() !== PHP_SESSION_ACTIVE) { 
    //PHP 7 
    throw new Error(); 
    } 

Nach session_write_close() wurde aufgerufen würde der Status PHP_SESSION_NONE

+0

Dies ist eine gute Antwort, danke. Ich habe das ein wenig in meinem Code ergänzt. Ich habe eine Wrapper-Funktion um session_write_close() geschrieben, so dass ich den Inhalt des Session-Arrays kurz vor dem Schreibvorgang behalten kann. Als am Ende meiner Skripte verwende ich Ihren Code und vergleichen Sie die aktuelle Sitzung mit dem gespeicherten Inhalt der Sitzung. Wenn es einen Unterschied gibt, werfe ich den Fehler aus und sage etwas wie "Sitzungsschreiben wurde zu einer nicht schreibbaren Sitzung versucht". – Haluk

Verwandte Themen