Wie funktioniert Zend_Auth-Speicher arbeiten?
Ist dies sehr einfach. Ich Schreibe
$auth->getStorage()->write($user);
Und dann möchte ich in einem separaten Prozess, um dieses zu laden $user, aber ich kann nicht, weil
$user = $auth->getIdentity();
leer ist. Habe ich nicht gerade...? Warum hat es nicht funktioniert? Halp?
[BEARBEITEN 2011-04-13]
Dies wurde gebeten vor fast zwei Jahren. Tatsache ist aber, dass ich die Frage wiederholt im Juli 2010 und erhielt eine fantastische Antwort, die ich damals einfach nicht verstehen.
Link: Zend_Auth schreiben fehlschlägt, Lagerung
Ich habe da ein sehr nettes kleines Klasse, die ich benutze (manchmal mit zusätzlichen Optimierungen) alle meine Projekte mit der gleichen Speicher-engine als Zend_Auth aber umgehen, all das schlechte.
<?php
class Qapacity_Helpers_Storage {
public function save($name = 'default', $data) {
$session = new Zend_Session_Namespace($name);
$session->data = $data;
return true;
}
public function load($name = 'default', $part = null) {
$session = new Zend_Session_Namespace($name);
if (!isset($session->data))
return null;
$data = $session->data;
if ($part && isset($data[$part]))
return $data[$part];
return $data;
}
public function clear($name = 'default') {
$session = new Zend_Session_Namespace($name);
if (isset($session->data))
unset($session->data);
return true;
}
}
?>
InformationsquelleAutor John | 2009-09-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soll es funktionieren.
Hier ist die Implementierung der Auth getIdentity Funktion.
Hier ist die Implementierung der PHP-Session-Speicher schreib-und lese Funktionen:
Sind Sie sicher, dass Sie das laden der gleichen Instanz von Zend_Auth Klasse?
Sind Sie mit
Vielleicht sind Sie dem Aufruf der write-Methode nach der Methode getIdentity?
Sowieso, wie ich vor sagte, was Sie tun sollte funktionieren.
Nur um zu bestätigen, die Einstellung der Speicher direkt funktioniert für mich. Ich benutze diese Methode, um die Kraft der Identität im debug-Modus, wenn die Verbindung getrennt, so kann ich die log-in mit meiner open-ID login-Seite. Ich denke, dass dies ein session-Problem, wie beschrieben, ist Ihr meistens wahrscheinlich problem.
InformationsquelleAutor Gaston
Also auf einer Seite neu laden, können Sie Holen die Sitzung nicht, wenn der Umleitung? Sind Sie der Umleitung auf eine andere Domain-Namen? Dann könnte es ein Problem mit den Cookies und man muss manuell eingestellt
session.cookie_domain
ini-variable.Überprüfen, ob der cookie namens
PHPSESSID
wurde richtig eingestellt und wenn es an den server gesendet, die auf jeder Seite verlangen? Ist es konstant oder ändert sich bei jeder Anfrage?Auch, möchten Sie vielleicht zu prüfen, ob die session-Daten ordnungsgemäß auf der Festplatte gespeichert. Die Sitzungen finden im Verzeichnis definiert durch die ini-variable
session.save_path
. Ist die Datei entsprechend IhremPHPSESSID
es und tut es enthalten einen sinnvollen Eintrag? In meinem Fall enthältInformationsquelleAutor Silvan Mühlemann
Hinzufügen:
zu index.php vor:
InformationsquelleAutor Piotr Szymaniak