Non Résolu

Erreur dans la page "connexion.php"

Bonjour j'ai ce code :


<?php
ini_set('display_errors','on');
error_reporting(E_ALL);
    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$")));

                                // array($mail, crypt($mdp, "VOTRE CLÉ UNIQUE DE CRYPTAGE DU MOT DE PASSE")));

$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 (!isset($req['id'])){

        $valid = false;

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

 

}elseif($req['n_mdp'] == 1){ // On remet à zéro la demande de nouveau mot de passe s'il y a bien un couple mail / mot de passe

    $DB->insert("UPDATE utilisateur SET n_mdp = 0 WHERE id = ?",

        array($req['id']));

}
 
            // 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>

Mais quand je me connecte il m'affiche ces erreurs :


Notice: Undefined variable: rounds in /home/didoykkq/public_html/connexion.php on line 33


Notice: Undefined variable: macleapersonnaliseretagardersecret in /home/didoykkq/public_html/connexion.php on line 33


Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format. in /home/didoykkq/public_html/connexion.php on line 33


Warning: Cannot modify header information - headers already sent by (output started at /home/didoykkq/public_html/connexion.php:33) in /home/didoykkq/public_html/connexion.php on line 72

747 vues
13 novembre 2019 à 16:39 (Édité)
Cette pub permet au site de vivre ...

4 commentaires

@Didoub74,



Il faut que tu génères une clé de cryptage unique ! Avec cette clé cela te permettra de crypter le mot de passe de tes utilisateurs ..


'$6$rounds=5000$macleapersonnaliseretagardersecret$'

'$6$rounds=5000$' . 'ma cle a personnaliser et a garder secret' . '$'


Je ne peux pas faire mieux c'est écrit dans le code en plus

Mais c'est exactement pareil dans l'inscription

@Didoub74,


Tu as une erreur à la fonction crypt .. pourtant l'erreur est bien précisée .. il faut que tu utilises la clé que tu as utilisée pour pour créer un compte sur ton site


<?php
array($mail, crypt($mdp, '$6$rounds=5000$macleapersonnaliseretagardersecret$'));
/* array($mail, crypt($mdp, "VOTRE CLÉ UNIQUE DE CRYPTAGE DU MOT DE PASSE"))); */
?>
Cette pub permet au site de vivre ...