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>
1108 vues
18 avril 2020 à 15:15 (Édité)
Cette pub permet au site de vivre ...

16 commentaires

Re @lloyds,


Content que tu as pu résoudre ton problème. Tu pourrais nous donner la solution de ton problème 😅

Apres cela n'oublie pas d'appuyer sur le bouton Résolu en haut à droite.😉


A bientôt 😀

Re:


Evite les majuscules...

Met le topic en "Résolu" dans ce cas

Oui mon problème a été résolu, merci bien frangin. 😩😀

Re @lloyds,

Ton problème a t'il été résolu ?😏

Merci à vous, vous m'avez vraiment aidé. agréable soirée à vous.

Re @lloyds,


Je ne comprend pas pourquoi ça ne fonctionne pas, moi ca fonctionne parfaitement, le cryptage et tout.

La seule chose que je peux te dire, c'est de supprimer et de réinstaller l'espace membre de la formation, et surtout de bien importer la base de donnée que @Clouder à donner lors de ce cours.

Tu peux télécharger l'espace membres en cliquant ici😅

Hello @lloyds,


Utilises les balises à dispositions ! 😤 La balise [CODE] (</>) pour mettre ton code et la balise [ERREUR] (</>) pour les messages d'erreurs

Evite les caractères en majuscules également, cela équivaut au "crie" sur le web...

On te recommande de ne plus utiliser Wamp, voir ce topic...

ok merci d'avance, je suis à court de batterie. Je vais vérifier et je te reviens.

@lloyds,


Il doit y avoir un problème...😒

J'ai testé l'intégralité de la formation et ça marche de mon côté. 😀

Si tu as correctement importer la table de la formation dans ta base de donnée, je ne comprend pas😕


Voici le code de Sitedudev que j'ai recopier :


<?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 ...
1
2