CakePHP: Session->write() funktioniert nicht
Ich Baue ein sehr basic-auth-system für bestimmte Seiten, die ein Passwort erfordern, um Sie anzuzeigen. Ich habe einige andere Fragen, die ähnlich klingen, aber die einzigen, die mit den klaren Lösungen erfordern, config-Einstellungen, die scheinen nicht zu lösen mein problem. Aus irgendeinem Grund $this->Session->write(...)
immer false zurück.
Hier ist meine config-Einstellung:
Configure::write('Session', array(
'defaults' => 'php'
));
Hier ist, wo ich versuche zu schreiben, die Sitzung, in der controller-action:
private function _handle_auth_attempt( $object ) {
$submitted_pass = $this->request->data['Object']['password'];
$correct_pass = $object['Object']['password'];
$auth_cookie_name = $this->Object->auth_cookie_name($object);
debug($auth_cookie_name); //'Object1.pass'
debug($submitted_pass); //'foobar'
if ( md5($submitted_pass) == md5($correct_pass) ) {
$write1 = $this->Session->write( $auth_cookie_name, md5($submitted_pass) );
$write2 = CakeSession::write( $auth_cookie_name, md5($submitted_pass) );
debug($write1); //FALSE
debug($write2); //FALSE
return TRUE;
}
$this->Session->setFlash('The password you entered is incorrect.');
$this->redirect( $this->referer() );
}
Update
Innen _handle_auth_attempt()
ich fügte hinzu:
$_SESSION['foo'] = 'bar';
$this->Session-read('foo'); //'bar'
...und Sie funktionieren gut. Also ich bin mir ziemlich sicher, dass dies kein Berechtigungen-problem.
Sind Sie mit dem hinzufügen SessionComponent an den controller?
haben u gelöscht, browser-cache?
Ich gedebuggt $ - Komponente, und ich sehe, Session -, Cookie-und Auth in das array rechts-vor ->write(...).
Ich wechselte Browser und die situation ist die gleiche.
haben u gelöscht, browser-cache?
Ich gedebuggt $ - Komponente, und ich sehe, Session -, Cookie-und Auth in das array rechts-vor ->write(...).
Ich wechselte Browser und die situation ist die gleiche.
InformationsquelleAutor emersonthis | 2013-12-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom source-code, eine Möglichkeiten der FALSCHE ist, dass der session-name ist leer.
So können Sie überprüfen, was für ein Ergebnis ist
InformationsquelleAutor XuDing
Ich verstehe das nicht, aber ich entfernt die "." aus in meine session-cookie-name und es bewirkt, dass
Session->write()
wieder zu arbeiten.Obwohl dies löst mein unmittelbares problem, ich würde gerne verstehen, dieses problem besser.
Update
Nach zu denken, das durch mehr, ich vermute, dass das, was geschieht, ist eine Kombination von Faktoren:
FALSE
da gab es schon <--ungetestetread()
war die Rückgabe von false.InformationsquelleAutor emersonthis
Alle Ihre session-lese - /Schreibvorgänge gehören in den controller:
InformationsquelleAutor Aditya P Bhatt