+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Futur Membre du Club
    Inscrit en
    octobre 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 40
    Points : 15
    Points
    15

    Par défaut Auth->login() ne fonctionne pas

    Bonjour,

    Je bloque depuis plusieurs heures sur la fonction qui doit permettre aux utilisateurs de mon site de se connecter : la fonction login().

    Le problème est qu'elle ne lance même pas une requête à la base de données. Et pourtant elle reçoit bien le login et le mot de passe (j'arrive à les faire s'afficher).

    Le nom de ma classe est "Joueurs" et non pas "Users", mais pourtant j'ai bien suivis le "cook book" pour que tout fonctionne correctement.

    Voilà mon $components dans mon controller JoueursController, ainsi que les fonctions beforeFilter et login :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    public $components = array(
    		    'Auth' => array(
    		        'loginAction' => array(
    		            'controller' => 'Joueurs',
    		            'action' => 'login'
    		        ),
    		        'authError' => 'Vous devez être inscrit pour accéder à cette page !',
    		        'authenticate' => array(
    		            'Form' => array(
    		                'fields' => array('username' => 'email')
    		            )
    		        ),
    		    'Session'
    	    )
    	);
     
     
    	public function beforeFilter() 
    	{
    		parent::beforeFilter();
    		$this->Auth->allow('inscription', 'login');
    	}
     
     
    public function login()
    	{
    		if($this->request->is('post')) 
    		{
    	             if($this->Auth->login())
    	             {
    	                 return $this->redirect($this->Auth->redirect());
    	             }
    	             else 
    	             {
    	                 $this->Session->setFlash(__("Le nom d'utilisateur ou le mot de passe est inco rect"), 'default', array(), 'auth');
    	             }   
    	        }
    	}
    Si encore la requête était envoyée je pourrais comparer les valeurs envoyées et reçues, mais là : rien.

    Si quelqu'un a déjà eu le problème, un coup de main est la bienvenu.

    Sinon je vais devoir faire la connexion sans utiliser la fonction login() ...

  2. #2
    Futur Membre du Club
    Inscrit en
    octobre 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 40
    Points : 15
    Points
    15

    Par défaut

    Biiiimmm !

    Ok c'est bon, j'ai trouvé !!

    L'erreur venait de mon $components, j'avais oublié de redéfinir le userModel ... au milieu de tous les array() fallait bien que j'en loupe un !

    Voilà donc le $components corrigé :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
             public $components = array(
    		    'Session',
    		    'Auth' => array(
    		        'loginAction' => array(
    		            'controller' => 'Joueurs',
    		            'action' => 'login'
    		        ),
    		        'authError' => 'Vous devez être inscrit pour accéder à cette page !',
    		        'authenticate' => array(
    		            'Form' => array(
    		            	'userModel' => 'Joueur',
    		                'fields' => array('username' => 'email')
    		            )
    		        )
    	    )
    	);
    A plus !

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •