begin process at 2012 05 31 06:06:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Porblème formulaire authentification avec zend


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Porblème formulaire authentification avec zend

mardi 10 janvier 2012 à 11:43:19 | Porblème formulaire authentification avec zend

BencoAndCo

Bonjour !


J'ai un problème avec zend j'essaye de faire un formulaire d’authentification avec le script ci-dessous mais lorsque je le lance en locale avec xampp le serveur apache locale plante et se stoppe voici le script :

Code PHP :
[b]class IndexController extends Zend_Controller_Action[/b]
{
  .
  .
  .
  
  .
  .

   public function loginAction()
    {
	    require_once 'application\forms\auth\login.php';
		
        $db = $this->_getParam('db');
 
        $loginForm = new Default_Form_Auth_Login();
 
        if ($loginForm->isValid($_POST)) 
		{
 
           $adapter = new Zend_Auth_Adapter_DbTable(
                $db,
                'users',
                'username',
                'password'
                );
          
		    $adapter->setTableName('users');
            $adapter->setIdentity($loginForm->getValue('username'));
            $adapter->setCredential($loginForm->getValue('password'));
            
			
			 
                     
						
            $auth   = Zend_Auth::getInstance();
            $result = $auth->authenticate($adapter);
  
            if ($result->isValid()) 
			{
                $this->_helper->FlashMessenger('Successful Login');
                $this->_redirect('/');
                return;
            }
			else
			{
			  echo $loginForm->render($this->view);
			}
			
	
 
        }
		else
		{
		
		  echo $loginForm->render($this->view);
		  
		}
 
        $this->view->loginForm = $loginForm;
 
    }



après observation il semblerait que ce soit cette ligne qui fasse tout planter :

Code PHP :
$result = $auth->authenticate($adapter);


et plus précisément dans le fichier /zend/auth/adapter/dbtable.php la ligne 483 en gras ci-dessous :

Code PHP :
    protected function _authenticateQuerySelect(Zend_Db_Select $dbSelect)
    {
        try {
            if ($this->_zendDb->getFetchMode() != Zend_DB::FETCH_ASSOC) {
                $origDbFetchMode = $this->_zendDb->getFetchMode();
                $this->_zendDb->setFetchMode(Zend_DB::FETCH_ASSOC);
            }

$resultIdentities = $this->_zendDb->fetchAll($dbSelect);
Code PHP :
            if (isset($origDbFetchMode)) {
                $this->_zendDb->setFetchMode($origDbFetchMode);
                unset($origDbFetchMode);
            }
        } catch (Exception $e) {
            /**
             * @see Zend_Auth_Adapter_Exception
             */
            require_once 'Zend/Auth/Adapter/Exception.php';
            throw new Zend_Auth_Adapter_Exception('The supplied parameters to Zend_Auth_Adapter_DbTable failed to '
                                                . 'produce a valid sql statement, please check table and column names '
                                                . 'for validity.', 0, $e);
        }
        return $resultIdentities;
    }




ma version de zend est la 1.11.8. et la table dans la bdd est correcte, j'ai testé la requete passée en argument de _authenticateQuerySelect(...) dans mon sgbd et elle fonctionne ... (la requete testée est : " SELECT `users`.*, (CASE WHEN `password` = 'aaaaaaaa' THEN 1 ELSE 0 END) AS `zend_auth_credential_match` FROM `users` WHERE (`username` = 'admin') " ).


avez vous rencontré ce problème ? avez vous des solutions ?


Merci !

@+!
mardi 10 janvier 2012 à 12:18:54 | Re : Porblème formulaire authentification avec zend

47

Bonjour,

tente de remplacer:
Code PHP :
$auth   = Zend_Auth::getInstance();
$result = $auth->authenticate($adapter);


par:
Code PHP :
$result = $adapter->authenticate();


bonne journée



mardi 10 janvier 2012 à 12:48:18 | Re : Porblème formulaire authentification avec zend

BencoAndCo


Déjà essayé ça ne marche pas ce qui est normal je penses j'ai le msg d'erreur suivant :


Notice: Undefined variable: auth in C:\xampp\htdocs\Site_UJLV\application\controllers\IndexController.php on line 90

Fatal error: Call to a member function authenticate() on a non-object in C:\xampp\htdocs\Site_UJLV\application\controllers\IndexController.php on line 90
mercredi 11 janvier 2012 à 00:35:22 | Re : Porblème formulaire authentification avec zend

BencoAndCo


J'ai avancé sur mon problème, il semblerait qu'il y ait une fonction qui s'appelle elle même, d'après ce que j'ai déduit & testé :


mon script fait appel à la fonction authenticate qui se trouve dans /zend/auth/adapter/dbtable.php l 365

cette fonction fait appel à _authenticateQuerySelect dans le même fichier qui fait appel à fetchAll l 485 qui se trouve dans le fichier /zend/db/adapter/abstract.php et qui fait appel à query() ligne 741 dans le meme fichier

dans cette fonction il y a un appel à la fonction execute() d'un objet statement cette fonction se trouve dans le fichier /zend/db/statement.php l 294 cette fonction fait appel à _execute qui se trouve dans le fichier /zend/db/statement/pdo.php et elle est définie comme ceci :

Code PHP :
  public function _execute(array $params = null)
    {
       
	   
	   try {
            if ($params !== null) {
                return $this->_stmt->execute($params);
            } else {
                return $this->_stmt->execute();
            }
        } catch (PDOException $e) {
            require_once 'Zend/Db/Statement/Exception.php';
            throw new Zend_Db_Statement_Exception($e->getMessage(), (int) $e->getCode(), $e);
        }
		
    }




théoriquement cette ligne :

return $this->_stmt->execute($params);


fait appele à execute dans execute si je ne me trompe pas ?


quelqu'un a t il une réponse ou solution ? Peut-être dois je tester la version au-dessus ? Ou faut réécrire la fonction _execute ?

Merci !
mercredi 11 janvier 2012 à 00:38:02 | Re : Porblème formulaire authentification avec zend

BencoAndCo



Du coup il y a appel de la fonction execute dans la même fonction execute ... c'est peut être ce qui fait planté xampp en local ?
vendredi 13 janvier 2012 à 17:32:38 | Re : Porblème formulaire authentification avec zend

BencoAndCo

Réponse acceptée !

Apparemment les autres fonctions de bases de données créent le même problème, je clos ce poste et poursuis sur celui-ci : http://www.phpcs.com/forum/sujet-PROBLEME-ZEND_DB-NE-FONCTIONNE-PAS-AVEC-MYSQL-XAMPP_1566156.aspx


Cette discussion est classée dans : code, adapter, auth, zend, loginform


Répondre à ce message

Sujets en rapport avec ce message

PLUGIN GRATUIS POUR GOLIVE POUR INSERER DU CODE PHP [ par Mirsa ] Bonjour tout le monde,J'ai trouver un plugin "Zend Code Snippet Plug-in for GoLive" pour Golive qui peut servir pour ceux qui utilise ce soft. Ce plug Problèm de privilèges avec ZEND framework 1.11.0 [ par vince22 ] Bonjour, voilà je rencontre un problème avec mon site, sur mon ordinateur (il fonctionne chez l'hébergeur) J'arrive à me connecter à mon site via logi Comment faire! [ par Joleroy ] Bonjour, J' ai une page qui sert a autentifier les visiteurs (auth.php):session_start();include("../inc/gmt.inc");if (isset Si cookie on affiche... [ par magicjim ] Bonjour a tous,je voudrais que sur ma page index il y est un code php de type Si un cookie existe on affiche "se déconnecter" sinon on affiche le form ImagePNG bizare... [ par MAsterC ] Salut à tous!Avec PHP pour crée une image comme un Code de sécurité on peut utilisé ce code ci:header (<FONT face=Taho Problème d'affichage de code HTML contenu dans une variable [ par azerty25 ] Hello allAlors voila, vu la question, je vous êtes surement aperçu que je débute (...), et j'ai pas trouvé de réponse. Alors je vais poser mon problèm PROBLEME DE CONNECTION!!! [ par lolorenzeb ] Salut tout le monde et BONNE ANNEE!!! Bon voila j'ai un gros souci avec un site en PHP que je viens de faire. Sur ce site les internautes peuvent s' Code pour menu "déroulant" [ par TOpie ] Bonjour tout le monde!Je suis débutante en programmation. Je suis actuellement entrain de faire un site internet, et je cherche un code permmettant de appeler un formulaire qui est dans un meme script PHP [ par fredericmaill ] S@lut, je voudrais savoir s'il est possible et dans ce cas quauel methode utilisé, pour faire  utiliser un formulaire POST, qui est sur le meme script Récuperer des données dans une base et les mettre dans un champs texte [ par benz038 ] Salut J'ai un formulaire avec un tableau a plusieur colonnes dont une liste déroulante avec des codes!Je voudrai récuperer les données correspondant a


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales