PHP

Fonction "crypt()" renvoie une erreur

Résolu

Bonjour, frères développeurs. Mon problème est le suivant: quand j’essaie de me connecter a mon compte, la fonction crypt() renvoie une erreur qui est :


Notice: Undefined variable: rounds in C:\wamp64\www\Web_App2\Site Dynamique\Projet Complet 1\connexion.php on line 31

Notice: Undefined variable: uvyfgzyffgfgfzgyilguimlnnL in C:\wamp64\www\Web_App2\Site Dynamique\Projet Complet 1\connexion.php on line 31


Voici le code source qui est celui de Sitedudev :


<?php
 include('bd/connexionDB.php');

// 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);

   // Vérification qu'il y est bien un mail de renseigné
   if(empty($mail)){
    $valid= false;
    $er_mail= "Il faut un mail";
   }
   // Vérification qu'il y est bien un mot de passe de renseigné
   if(empty($mdp)){
    $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$uvyfgzyffgfgfzgyilguimlnnL$")));  (ligne 31)
  $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 incorrect";
  }

   // 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'];
   $_SESSION['nom']=$req['nom'];
   $_SESSION['prenom']=$req['prenom'];
   $_SESSION['mail']=$req['mail'];

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

<!DOCTYPE html>
<html lang="fr" dir="ltr">
 <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><?= $err_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>
1107 vues
18 avril 2020 à 15:15 (Édité)
Cette pub permet au site de vivre ...

16 commentaires

@lloyds,


D'accord 🧐

Mais as-tu modifié ce code ou là tu adapté ?

Si c'est le code de la formation Sitedudev, il suffit de vérifier l'insertion de ta requête dans ta base de donnée.


Le voici :


$DB->insert('Insert into user (pseudo, mail, password, idpublic) values (:pseudo, :mail,:password, :idpublic)', array('pseudo' => $Pseudo, 'mail' => $Mail, 'password' => crypt($Password, '$2a$10$1qAz2wSx3eDc4rFv5tGb5t'), 'idpublic' => $id_public));  


Est-ce que cela t'aide ?😏

Oui je l'ai récupéré depuis le Sitedudev

@lloyds,

Ce code tu l'as obtenu ou ? Est-ce toi qu'il la créer ? Tu la récupéré depuis la formation de Sitedudev ?🧐

@lloyds

Est-ce que tu pourrais mettre ton code source dans les balises [CODE] </></>. Ca serait plus lisible 😏

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