2010-07-24 5 views
5

Ich habe seit einiger Zeit im Internet gesucht und HTML5 lokalen Speicher scheint wie etwas Nützliches für mich aussehen und eine Lösung für mein Problem, das ich mit PHP-Sitzungen habe, das Problem ist, dass sie nicht konsistent sind, auch wenn ich sie an mich erinnern, das nächste Mal, wenn ich auf meine Startseite komme ich auf die Anmeldeseite genommen wird, ist dies nicht immer, aber oft erweisen sich PHP-Sitzungen als inkonsequent für mich.Wie kann ich HTML5 lokalen Speicher neben PHP, verwenden Sie das für PHP-Sitzungen, und speichern Sie andere Informationen, die PHP verwendet

Ich würde gerne wissen, ob ich lokalen Speicher für konsistente Sitzung Speicher verwenden kann, die PHP verwenden kann, alle Beispiele, die ich im Web gesehen habe Javascript verwenden.

Antwort

9

Localstorage dient zum Speichern von Daten Client-Seite, so dass es zugegriffen werden kann, auch wenn der Client offline ist, in diesem Fall wird zugegriffen, wie Sie sagten, mit JavaScript.

PHP-Sitzungen speichern Informationen auf dem Server. Die Verwendung von localStorage ist auch eine schlechte Idee, da sie vom Client geändert werden kann, sodass der Client behaupten kann, als anderer Benutzer angemeldet zu sein, was offensichtlich ein Sicherheitsproblem ist.

Gibt es ein Problem mit Ihrer PHP-Konfiguration? Gibt es einen Zeitüberschreitungswert für den PHP-Sitzungscookie, den Sie ändern können?

+0

ich setze meinen Sitzungscookie für 604800 Sekunden, das sind 7 Tage wenn ich mich anchecke, sonst ist es eine normale Sitzung, die verschwindet, wenn der Browser beendet wird, ich benutze Zend Framework, hier ist meine Codezeile dafür, if (! Leer ($ this-> rememberMe)) { Zend_Session :: rememberMe (604800); } else { Zend_Session :: forgetMe(); } das ist alles, was es ist, ich weiß nicht, was kann möglicherweise schief gehen, Ja es funktioniert, aber es ist nicht konsequent, es fällt zufällig in ein paar Stunden, das Maximum blieb es war für 2 Tage, es verschwindet auch wenn das Browserfenster geöffnet ist –

+0

Ist die normale PHP $ _SESSION-Variable erfolgreicher? Ist es ein Problem mit Ihrem Browser? – tjvr

+0

Ich habe nicht das rohe $ _SESSION versucht, aber es ist kein Browser-Problem, meine Freunde und Alpha-Tester bemerken das gleiche Problem. –

3

Nein. PHP läuft auf dem Server und hat keinen Zugriff auf die lokale Speicher-API des Browsers.

3

Ich hatte dies mit mir passiert und es scheint, dass der Server beschließt, PHP-Sitzungen nach dem Zufallsprinzip zu bereinigen. Ich denke, dass es das tut, wenn es Speicherprobleme hat ... deshalb ist es zufällig und hat nichts mit Timeout-Einstellungen zu tun. Wenn Ihnen das passiert, können Sie ihm eine hohe Last zuordnen, die zwischen dem Zeitpunkt, zu dem Sie zuletzt angemeldet waren (oder der letzten Sitzung), auf dem Webserver stattgefunden hat?

Wie auch immer, seit seinem ganzen Javascript gibt es keinen Grund, warum Sie nicht PHP verwenden können, um Ihre js auszugeben, die Daten zu localstorage erhält und setzt.