Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
je suis débutant en ZF, je veux créer un formulaire pour l'authentification; dans l'authentification j utiliser 'Zend_auth' avec l'adaptateur 'http'. Comme premier étape j commencer par afficher le contenu de 2 champs login/password après l'authentification mais j'arrive pas a faire cette étape.
Merci d'avance.
Hors ligne
Bonjour,
Voici un bout de code qui va pouvoir, je l'espère t'aider, mais va sur la documentation de Zend sur ce sujet elles est assez bien faite.
Bon il faut le mettre à ta sauce après :
$db = Zend_Db_Table::getDefaultAdapter(); $dbAdapter = new Zend_Auth_Adapter_DbTable($db, 'users_list', 'users_list_login', 'users_list_password', 'MD5(?)'); $dbAdapter->setCredential($this->_request->users_list_password)->setIdentity($this->_request->users_list_login); $auth = $this->_auth->authenticate($dbAdapter); if ($auth->isValid()) { $datas = $dbAdapter->getResultRowObject(null, array('users_list_password', 'users_list_mail', 'users_list_activation_key', 'users_list_active', 'users_list_date_subscribe')); foreach($datas as $key => $value) { $identity->$key = $value; } $this->_auth->getStorage()->write($identity); }
Bien cordialement.
Hors ligne
Merci bq,
pour le soutien,
Mais je travail avec Zend_auth_adapter_http et non pas Zend_Auth_Adapter_DbTable.
Hors ligne
Faudrait que tu nous montres comment tu affiches ces champs.
nicko te montre une solution que tu peux utilisé, seule l'adpater change, le reste du code est valable, C'est le but d'un adapter.
Seule la conf de l'adapter change et elle est très facile pour Http. Le guide de référence du ZF ton montre tout ce qu'il faut
Hors ligne
Oh oui (honte sur moi)
Mais je pense aussi que comme c'est de adapter, le fonctionnement doit être presque le identique dur les fonction de base.
Il est vraiment bien ce Zend LOL
Dernière modification par nicko (02-04-2010 15:20:22)
Hors ligne
voici l'instruction qui j'utilise :
echo $result->getIdentity();
mais il affiche un le mot Array
Hors ligne
print_r($result->getIdentity());
Hors ligne
Bonjour,
Merci nORKy, mais il affiche toujours la même chose ==> Array
Ainsi l'autentification ne fonctionne pas comme il faut ; le programme affiche toujours un message d'erreur et j comprend pas comment; parce que j copier le code de la documentation du ZF.
pouvez vous m'aider SVP?
Hors ligne
Bonjour,
J'ai réaliser un plugin pour contrôler l'identification de l'utilisateur à l'application.
J'aimerai conserver les informations de l'utilisateur pour :
Afficher le nom de l'utilisateur à partir du layout
Utiliser ses informations pour mettre à jour le champ 'modifier par' de plusieurs table.
Code du plugin
class Soltom_Controller_Plugin_Authentication extends Zend_Controller_Plugin_Abstract { public function preDispatch() { $auth = Zend_Auth::getInstance(); if(! $auth->hasIdentity() AND $this->_request->getControllerName() != 'authentication' AND $this->_request->getActionName() != 'login') { $this->getResponse()->setRedirect('/authentication/login'); } } }
Code du controller personnaliser
class Soltom_Controller_Action extends Zend_Controller_Action { protected $_formDefaultAction; protected $_formClassName; protected $_mapperClassName; protected $_authentication; public function init() { $this->_authentication = Zend_Auth::getInstance()->getStorage()->read(); $this->view->auth = $this->_authentication; }
Code d'un controller
class PersonnelController extends Soltom_Controller_Action { public function init() { /* Initialize action controller here */ $this->_formDefaultAction = '/personnel/save'; $this->_formClassName = 'Application_Form_Personnel'; $this->_mapperClassName = 'Application_Model_PersonnelMapper'; } }
Dans le layout
... <h6>Session de : <?php echo $this->escape($this->auth->login); ?></h6> ...
Message d'erreur :
... Notice: Trying to get property of non-object in /usr/local/zend/apache2/htdocs/soltom/application/layouts/scripts/layout.phtml on line 11
Par contre si je fait un Zend_auth::getInstance() dans le layout et que je récupère les infos, je peux les afficher.
Il s'agit certainement d'un ordre d'initialisation ou similaire mais là je sèche un peu.
Merci pour votre aide.
JiBe
Hors ligne
Pages: 1