Bonjour à tous,

Aujourd'hui je viens vous parler d'un problème que j'essai de résoudre depuis quelques heures.

J'ai tout recommencé deux fois, mais rien..

<?php 
    class ConnexionController extends AppController {

        public function index() {

            $this->loadModel('User');

            if(!empty($this->request->data)) {

                debug($this->request->data);

                if($this->Auth->login()) {

                }
                else {

                }

            }

        }

    }
?>

Tout est normal je pense dans le code, mais j'ai du oublié quelque chose..

Mon formulaire :

<center>
    <h2>Bienvenue à tous !</h2>

</center>
<center>
    <?= $this->Form->create('User'); ?>
    <?= $this->Form->input('username'); ?>
    <?= $this->Form->input('password'); ?>
    <?= $this->Form->end('Se connecter'); ?>
</center>

Voici la requête finale :

SELECT `User`.`id`, `User`.`username`, `User`.`password` FROM `monblog`.`users` AS `User` WHERE `User`.`username` = 'admin' LIMIT 1

En aucun cas il parle du Password lors de la recherche.

Merci de m'aider, si vous avez besoin d'une information.. N'hésitez pas :).

4 réponses


christophe4427
Réponse acceptée

Hum, bah définitivement je ne te comprends pas. Je sais pas s'il y a quelqu'un qui peut traduire.

En gros pour moi, bah ta fonction oui elle lance login, et basta c'est tout. Après je ne vois pas pourquoi tu parles de l'info Password. C'est récupéré nulle part pour moi.

Si tu avais suivi le tuto correctement, je pense que ça serait mieux passer.

function login(){
        if($this->request->is('post')){
            if($this->Auth->login()){
                $this->User->id = $this->Auth->user("id");
                $this->User->saveField('lastlogin',date('Y-m-d H:i:s')); 
                $this->Session->setFlash("Vous êtes maintenant connecté","notif_ok");
                $this->redirect('/');
            }else{
                $this->Session->setFlash("Identifiants incorrects","notif_ko",array('type'=>'error'));
            }
        }
    }

Bah c'est quoi ton problème en fait ?
Parce que là, ton code, en dehors de faire un debug, il fait rien hein...

carpetos
Auteur
$this->Auth->login()

Cette ligne envoie la requête :

SELECT `User`.`id`, `User`.`username`, `User`.`password` FROM `monblog`.`users` AS `User` WHERE `User`.`username` = 'admin' LIMIT 1

Mais il manque l'information AND password = ...

Est-ce que j'ai mal utilisé la fonction, où faut-il faire quelque chose d'autre ?

carpetos
Auteur

Bonjour,

Tout d'abord je te remercie de suivre mon sujet :).

Le problème se passe au mot de passe, lorsque tu vois la requête.. On peut le voir qu'il manque une information dans les conditions.

Pour ce qui est du tutoriel (la formation), je n'ai pas encore tout regarder mais j'ai fait ce code, comme il a pu être fait dans la vidéo.

Mais peut-être que j'ai raté une étape, alors je vais reprendre les étapes que je n'ai pas vue.