2012-03-28 7 views
0

Ich habe eine Menge Probleme beim Versuch, Zend-Sitzungen richtig funktionieren zu bekommen. Grundsätzlich muss ich beim Laden der Website eine Variable festlegen. Diese Variable sollte dann während der gesamten Lebensdauer der Sitzung konstant bleiben.Zend Sitzung scheint auf jeder Seite neu gestartet

dies ein wenig klarer zu helfen, lassen Sie sich das folgende Szenario nehmen:

In Bootstap.php, ich habe

protected function _initSession() { 
    $session = new Zend_Session_Namespace(); 
    $session->testValue = rand(0, 100); 
} 

Dann habe ich es in der Anwendung an anderer Stelle wie folgt zugreifen:

Nun, was ich hoffe, dass $ session-> testValue einmal zugewiesen werden würde, und dieser Wert wäre der gleiche bei jeder folgenden Seitenanforderung. Aber in Wirklichkeit ist $ session-> testValue jedes Mal eine neue Zufallszahl.

Was mache ich falsch?

Antwort

2

Jedes Mal, wenn Bootstrap.php ausgeführt wird, überschreibt es die Eigenschaft testValue. Stellen Sie es nur ein, wenn es noch nicht festgelegt wurde.

protected function _initSession() { 
    $session = new Zend_Session_Namespace(); 
    if (!isset($session->testValue)) { 
     $session->testValue = rand(0, 100); 
    } 
} 
+0

Ich dachte so viel ich selbst, aber wenn ich das tue, erhalte ich jedes Mal einen neuen zufälligen Wert, wenn ich die Seite aktualisiere. – Jedediah

+0

Wenn es einen Unterschied macht, werden Sitzungen im Dateisystem gespeichert, nicht in einem Cookie – Jedediah

+0

Sie haben überprüft, dass die Sitzungsdateien generiert werden? – nachito

Verwandte Themen