Connexion PHP

Par Clouder le 29 Oct 2019 (Édité) 5 +99

Après avoir créé notre formulaire d'inscription il nous faut créer un formulaire de connexion afin que nos futurs utilisateurs puissent se connecter au site une fois inscrit.

Pour cela, il faut créer un nouveau formulaire avec une méthode "POST" afin de traiter les informations sur la page en cours.


Page connexion.php


<?php
    session_start();
    include('bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD

  // S'il y a une session alors on ne retourne plus sur cette page  
    if (isset($_SESSION['id'])){
        header('Location: index.php');
        exit;
    }

    // Si la variable "$_Post" contient des informations alors on les traitres
    if(!empty($_POST)){
        extract($_POST);
        $valid = true;

        if (isset($_POST['connexion'])){
            $mail = htmlentities(strtolower(trim($mail)));
            $mdp = trim($mdp);

            if(empty($mail)){ // Vérification qu'il y est bien un mail de renseigné
                $valid = false;
                $er_mail = "Il faut mettre un mail";
            }

            if(empty($mdp)){ // Vérification qu'il y est bien un mot de passe de renseigné
                $valid = false;
                $er_mdp = "Il faut mettre un mot de passe";
            }

            // On fait une requête pour savoir si le couple mail / mot de passe existe bien car le mail est unique !
            $req = $DB->query("SELECT * 
                FROM utilisateur 
                WHERE mail = ? AND mdp = ?",
                array($mail, crypt($mdp, "$6$rounds=5000$macleapersonnaliseretagardersecret$")));
            $req = $req->fetch();

            // Si on a pas de résultat alors c'est qu'il n'y a pas d'utilisateur correspondant au couple mail / mot de passe
            if ($req['id'] == ""){
                $valid = false;
                $er_mail = "Le mail ou le mot de passe est incorrecte";
            }

            // Si le token n'est pas vide alors on ne l'autorise pas à accéder au site
            if($req['token'] <> NULL){
            	$valid = false;
                $er_mail = "Le compte n'a pas été validé";	
            }

            // S'il y a un résultat alors on va charger la SESSION de l'utilisateur en utilisateur les variables $_SESSION
            if ($valid){
                $_SESSION['id'] = $req['id']; // id de l'utilisateur unique pour les requêtes futures
                $_SESSION['nom'] = $req['nom'];
                $_SESSION['prenom'] = $req['prenom'];
                $_SESSION['mail'] = $req['mail'];

                header('Location:  index.php');
                exit;
            }   
        }
    }
?>


<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Connexion</title>
    </head>
    <body>      
        <div>Se connecter</div>
        <form method="post">
            <?php
                if (isset($er_mail)){
            ?>
                <div><?= $er_mail ?></div>
            <?php   
                }
            ?>
            <input type="email" placeholder="Adresse mail" name="mail" value="<?php if(isset($mail)){ echo $mail; }?>" required>
            <?php
                if (isset($er_mdp)){
            ?>
                <div><?= $er_mdp ?></div>
            <?php   
                }
            ?>
            <input type="password" placeholder="Mot de passe" name="mdp" value="<?php if(isset($mdp)){ echo $mdp; }?>" required>
            <button type="submit" name="connexion">Se connecter</button>
        </form>
    </body>
</html>
Cette pub permet au site de vivre ...

5 commentaires

Tu veux participer ?
Alors connecte toi ou inscris toi et viens participer !

Hello @Alexandre1995,


C'est comme tu veux ! 😉

Tu peux aussi obtenir l'aide de la communauté en créant ton topic 😉 Ca aurait été mieux je pense que par mail 😄

@atboris

Vu le délai passé, je pense que tu as trouvé enfaîte l'erreur parle d'elle même.

Ta variable n'est pas définit je pense que tu as juste copié ses codes et pas suivi les tutos en vidéo ?

Si c'est le cas, il faut rajouter des variables autres que sur le "connexion.php"


@Jerem971 Salutation, je me suis inscrit sur le site suîte à tes recommandations, j'ai demandé à Doppler de m'aider par mail.

Merci. 🦌

Hello @bisprotais2000 et @atboris,


Afin d'obtenir au mieux de l'aide, vous pouvez créez vos topics sur le présent forum 😉

Bonjour je vous remercie pour tout ce que vous faites mais j'ai un probleme au niveau de la connexion lorsque je valide le formulaire si le mail ou le mot de passe est invalide le code repond bien mais si tout est valide sa me retourne une erreur que je n'arrive pas a decernee


L'erreur en question est le suivante : Remarque: Variable non définie: macleapersonnaliseretagardersecret dans C: \ wamp \ www \ IsinuxProd \ Forum \ index.php à la ligne 36

-Remarque: index non défini: id dans C: \ wamp \ www \ IsinuxProd \ Forum \ index.php à la ligne 40


La ligne 36 est : array($mail, crypt($mdp, "$6$rounds=5000$macleapersonnaliseretagardersecret$")));

La ligne 40 est: if ($req['id'] == ""){

$valid = false;

$er_mail = "Le mail ou le mot de passe est incorrecte";

}


s'il vous je suis sur que c'est au niveau du cryptage qu'il y a un probleme aidez-moi je vous en prie !!!

bonjour j’apprécie vraiment ce que vous faites.je ne connaissais rien en programmation mais vous me donnez envie d'y croire.

j'ai un gros soucis, j'ai déjà mis en place mon espace membre, j'ai déjà mis en place mon espace commentaire mais je n'arrive pas a autoriser seulement les membres qui sont connectes a pouvoir poster des commentaires. Aidez s.il vous plait.Merci beaucoup

Cette pub permet au site de vivre ...