PHP

Problème avec "crypt()"

Résolu

Bonjour,


Je suis actuellement en train de suivre la série de vidéo "Créer son site de A à Z" et je suis rendu à la 3ème vidéo sur la page de connexion. Tout marche nickel sauf quand je fais exprès de faire une erreur dans le mail ou le mdp lors de la connexion. En fait ça m'affiche bien "Le mail ou le mot de passe est incorrecte" mais j'ai une erreur au dessus qui dit : Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format.

Du coup j'ai essayé de changer crypt() par password_verify, ça enlève bien l'erreur mais du coup je n'arrive plus du tout à me connecter donc ça doit pas être ça 😆

Du coup je voulais savoir si vous auriez une idée du problème.


Voici mon code 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 = "Veuillez mettre un mail";
            }


            if(empty($mdp)){ // Vérification qu'il y est bien un mot de passe de renseigné
                $valid = false;
                $er_mdp = "Veuillez 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, "$6i8qVRuopn1Eksidfygdsljfnfksk254f5d5dd9d6d3f2gh55dc2b5")));


            $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";
            }


            // 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;
            }   
        }
    }
?>
879 vues
18 décembre 2020 à 19:54 (Édité)
Cette pub permet au site de vivre ...

12 commentaires

Salut @Jerem971,


Oui j'ai bien téléchargé le code source car j'ai vu qu'il y avait des erreurs en copiant.


J'utilise WampServer effectivement.

Hello @Robiox,


On est bien d'accord que tu as télécharger le code source plutôt que de copier/coller ? 🤔

Utilises-tu Wamp, XAMPP, EasyPHP ou autre ? 🤔

Cette pub permet au site de vivre ...
1
2