Zend session und zend auth
Ich habe ein login-system durch zend auth hier ist der code
//userAuthentication
public function authAction(){
$request = $this->getRequest();
$registry = Zend_Registry::getInstance();
$auth = Zend_Auth::getInstance();
$DB = $registry['DB'];
$authAdapter = new Zend_Auth_Adapter_DbTable($DB);
$authAdapter->setTableName('user')
->setIdentityColumn('user_name')
->setCredentialColumn('user_password');
$username = $request->getParam('username');
$password = $request->getParam('password');
$authAdapter->setIdentity($username);
$authAdapter->setCredential($password);
$result = $auth->authenticate($authAdapter);
if($result->isValid()){
$data = $authAdapter->getResultRowObject(null,'password');
$auth->getStorage()->write($data);
$this->_redirect('/login/controlpannel');
}else{
$this->_redirect('/login/login');
}
}
Diese Arbeit jetzt gut. Es ist user_id (Spalte) Benutzer (Tabelle) wo gibt es Benutzername und Passwort zu. Ich müssen zu bekommen, dass bestimmte user_id aus der Tabelle, die sich einfach nur einloggen und legte es in der Sitzung durch
$user_session = new Zend_Session_Namespace('user_session');
$user_session->username = $username;
$user_id->user_id = $user_id;
so, dass ich Abfragen kann einige info gegen diese $user_id und übergeben Sie das Ergebnis in der Ansicht (name) controlpanel
warum wollen Sie in der Sitzung manuell? Es wird create session einmal anmelden und Sie bekommen können, aus dem Speicher.
wie bekomme ich die user_id aus dem Speicher ???
$Daten = Zend_Auth::getInstance()->getStorage()->read(); $this->Ansicht->username = $Daten->Benutzername; $this->Ansicht->id = $Daten->user_id;
wie bekomme ich die user_id aus dem Speicher ???
$Daten = Zend_Auth::getInstance()->getStorage()->read(); $this->Ansicht->username = $Daten->Benutzername; $this->Ansicht->id = $Daten->user_id;
InformationsquelleAutor Fawad Ghafoor | 2012-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bekommen die Benutzer-id aus dem Speicher :
InformationsquelleAutor
Dies wurde zwar schon beantwortet, ich Neige dazu, verwenden Sie die
getIdentity()
Funktion häufiger als diegetStorage()->read()
Kette. Beispiele unten.InformationsquelleAutor mimarcos
Können Sie den Zugriff auf die Daten, so wie Teez vorschlagen, oder ziehen Sie es einfach von Zend_Session_Namespace.
was für eine tolle Antwort. Es ist mein problem gelöst. Danke dir 🙂
InformationsquelleAutor RockyFord
Zuweisung eines Arrays an eine Sitzung müssen Sie einen Namen für die Sitzung, die Sie Bereich erstellen, d.h. Sie müssen setStorage, bevor Sie getStorage.
müssen Sie schreiben Sie Ihren code wie folgt:
haben und dann Ihre Speicher Wert, den Sie verwenden müssen, dieses:
und Sie bekommen alles, was in $y als Objekt.
Genießen!
InformationsquelleAutor Arpit Maheshwari
Dies ist mein Ansatz, und es s arbeiten nice:
1-ich beginne mit der Definition eines init-Funktion in der bootstrap
/* in der Login-Aktion,nach dem korrekten Benutzernamen & pwd */
InformationsquelleAutor mboullouz
user = Zend_Auth::getInstance ()- > getIdentity();
if(!@$dieser->user){
$objSession->errorMsg = " Bitte Loggen Sie sich Zuerst .. ! ";
$dies->_redirect('/user/login');
}
?>
InformationsquelleAutor Er Amit Anand