IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

CodeIgniter PHP Discussion :

Controller d'authentification


Sujet :

CodeIgniter PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Controller d'authentification
    Bonjour,

    Je débute complètement avec le langage php ainsi que le framework Codeigniter mais pour un projet scolaire notre professeur nous a donné comme consigne d'utiliser uniquement le framework Codeigniter pour coder notre site.
    Je suis actuellement une vidéo pour m'aider à faire le système d'authentification mais lorsque je lance la connexion grâce avec la form du login, j'ai un problème qui découle de là. J'ai cherché à voir si j'avais une erreur dans la console mais il n'y a rien du tout qui est indiqué.
    J'ai essayé de faire un var_dump pour me montrer l'erreur et il ne m'indique que "NULL".
    J'ai essayé de régler le soucis comme l'instructeur l'a mis dans sa vidéo en utilisant la commande if(!is_null(item)).. mais après ça rien ne se passe.
    Voilà mon code, Controller, Routes et Views et aussi les screens.
    Controller Login :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
                    $record = $model->where("email", $this->request->getVar("email"))
                    ->where("password", $this->request->getVar("password"))
                    ->first();
                    var_dump($record);
                    $session = session();
                    if(!is_null($record)){
                        //donnée trouvée dans la bdd
                        $sess_data = [
                            "email"                 => $record["email"],
                            "pseudo"                  => $record["pseudo"],
                            "id_role"               => $record["id_role"]
                        ];
                        $session->set($sess_data);
                        if($record['id_role']=="eleve"){
                            // direction tableau de bord "élève"
                            return view('eleve_dashboard/dashboard');
                        }
                        else if($record['id_role']=="modo"){
                            // direction tableau de bord "modo"
                            return view('modo_dashboard/dashboard');
                        }
                        else{
                            // direction tableau de bord "admin"
                            return view('admin_dashboard/dashboard');
                        }
                        return redirect()->to(base_url($url));
                    }
                    else{
                        $session->set("failed_message","Vos informations ne correspondent pas, réessayer.");
                        $session->markAsFlashdata('failed_message');
                        return redirect()->back()->withInput();
                    }
    Views login.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
                            <h3>Connexion</h3>
                            <?php $session = session(); ?>
                            <?php if(!is_null($session->getFlashdata('failed_message'))): ?>
                            <div class="alert alert-danger">
                                <?php echo $session->getFlashdata('failed_message'); ?>
                            </div>
                            <?php endif ?>
     
                            <?php $validation = \Config\Services::validation(); ?>
                            <form action="<?php echo base_url('login')?>" method="POST">
                                <div class="input__item">
                                    <input type="text" placeholder="Email address" name="email" value="<?php echo old('email')?>">
                                    <span class="icon_mail"></span>
                                    <div class="text-danger">
                                        <?php echo $validation->getError("email")?>
                                    </div>
                                </div>
                                <div class="input__item">
                                    <input type="text" placeholder="Password" name="password" value="<?php echo old('password')?>">
                                    <span class="icon_lock"></span>
                                    <div class="text-danger">
                                        <?php echo $validation->getError("password")?>
                                    </div>
                                </div>
                                <button type="submit" name ="identification" class="site-btn">Se connecter</button>
                            </form>
    Routes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $routes->get('/login','Login::login');
    $routes->post('/login','Login::login');
    $routes->group('groupe', ['namespace' => 'App\Controllers'], function ($routes) {
        $routes->get('eleve', 'DashboardController::eleve');
        $routes->get('admin', 'AdminDashboardController::index');
    });
    On m'affiche ça comme erreur sans mettre le var_dump
    Nom : 2022-11-15.png
Affichages : 387
Taille : 29,9 Ko
    En mettant le var_dump
    Nom : 2022-11-15 (2).png
Affichages : 377
Taille : 9,5 Ko
    Normalement ça doit me diriger sur cette page
    Nom : 2022-11-15 (1).png
Affichages : 366
Taille : 34,2 Ko

    Merci pour les réponses que vous pourrez m'apporter.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par djelectro95 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                    $record = $model->where("email", $this->request->getVar("email"))
                    ->where("password", $this->request->getVar("password"))
                    ->first();
    Bonjour,
    Si tu as crypté le password pour l'entrer dans la table (ce qui est hautement souhaitable), alors la requete echoue parce que tu lui passes le mot de passe en clair. Vérifie ça.
    Mais :
    Tu ne devrais pas mettre le password dans la clause where.
    Cherche l'utilisateur (select * ) dans la table par son email, puis si trouvé, compare le password crypté venant du formulaire avec le password de la table.
    Je suis clair ?
    Bon courage
    Eric

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Merci de ton aide, c'était exactement ça.. je suis dégouté haha. J'avais créé une variable "$hash" pour mon mot de passe et je ne l'ai pas déclaré.

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

Discussions similaires

  1. [Security] authentification, hibernate, controller
    Par robert_trudel dans le forum Spring
    Réponses: 6
    Dernier message: 07/12/2009, 20h49
  2. authentification par user control
    Par Jatukam dans le forum ASP.NET
    Réponses: 2
    Dernier message: 19/08/2008, 11h25
  3. Réponses: 2
    Dernier message: 18/01/2008, 15h59
  4. servlet de controle d'authentification
    Par bassam0205 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 06/12/2007, 12h20
  5. Authentification et controle d'acces
    Par K-Kaï dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 26/07/2006, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo