J'ai crée un code php pour un espace membre sauf qui ne marche pas !

Résolu/Fermé
ScreamFR Messages postés 73 Date d'inscription lundi 30 décembre 2019 Statut Membre Dernière intervention 19 mai 2022 - Modifié le 4 janv. 2020 à 00:00
jordane45 Messages postés 38134 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 avril 2024 - 5 janv. 2020 à 17:48
Bonjours , voila le vous explique mon problème j'ai crée un code php pour faire un espace membre sur mon site sauf que ça ne marche pas , ce que je veut dire dans ça ne marche pas c'est que le navigateur ne me mes pas qu'il y a une erreur , néanmoins il y en a une car ça ne me redirige pas

voila mon code :


<?php
session_start();

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd
$bdd = mysqli_connect("localhost","****","****","****_bdd");

if (mysqli_connect_errno()) {
  echo "Souci de connexion à la bdd : " . mysqli_connect_error();
  exit();
}

if (isset($_POST['BtConnect'])){
    
    $UsernameConnect = !empty($_POST['UsernameConnect']) ? $_POST['UsernameConnect']: NULL;
    $PasswordConnect = !empty($_POST['PasswordConnect']) ? $_POST['PasswordConnect']: NULL;
    $sql = "SELECT * FROM users WHERE username = '$UsernameConnect' ";
    $result = mysqli_query($bdd,$sql);

    $rows=mysqli_num_rows($result);
        
    if ($rows==1){
        $data = mysqli_fetch_assoc($result);
   
        
        /* Fermeture de la connexion à la bdd */
        mysqli_close($bdd);


        
        if(password_verify($PasswordConnect, $data['password'])){ //  $data['password'] permet de lire la valeur du password de ta variable $data
            $_SESSION['username'] = $UsernameConnect;
            header('Location: ../Hub/Hub.php'); 
            exit; 
        }
    } else{
        echo "Identifiant incorrect !";
    }
}


?>
<html>
  
  <head>
    <meta charset="utf-8">
    <title>DarkWed</title>
    <link rel="stylesheet" href="css/styl.css">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.css">
  </head>
  
  <body>
      <im class="background" src="img/imgback5.jpg">
      <im class="logo" src="img/logo.png">
      <section>
      <div class="Interface">
          <p class="Title">DarkWeb</p>
          </div>
          <div class="MidInterface">
              <form method="POST" action="">
              <input name="UsernameConnect" class="TxtUsername" placeholder="Identifiants" type="text" required>
              <span class="incompletU">Champs incomplet</span>
              <input name="PasswordConnect" class="TxtPassword" placeholder="clé d'activation" type="password" required>
              <span class="incompletP">Champs incomplet</span>
              <div class="BtV">
              <input class="Bt" type="submit" value="Connexion" name="BtConnect">
              </div>
              </form>
          </div>
      </section>
  </body>

</html>



oui j'ai fait exprès d'enlever le link qui relie mon fichier php et mes 2 balise img pour bien voir les erreurs


voila ça me donne ceci , est quand je mes les mauvais identifiants le message "identifiant incorrect" apparaît mais quand ce sont les bons identifiants ça ne marche pas :
A voir également:

3 réponses

jordane45 Messages postés 38134 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 avril 2024 4 646
4 janv. 2020 à 08:36
Bonjour

Si ça ne marque pas d'erreur et que ça ne te redirige pas.. c'est sûrement qu'il y a un souci ailleur.
Je pense qu'en ajoutant un else dans ton code on devrait le voir

if(password_verify($PasswordConnect, $data['password'])){ //  $data['password'] permet de lire la valeur du password de ta variable $data
     $_SESSION['username'] = $UsernameConnect;
      header('Location: ../Hub/Hub.php'); 
      exit; 
 }else{
   echo "Les mots de passe ne sont pas identiques ! ";

}



A savoir que tu doit avoir utilisé un passwsord_hash pour encodé ton mot de passe en bdd... c'est bien le cas ??


1
ScreamFR Messages postés 73 Date d'inscription lundi 30 décembre 2019 Statut Membre Dernière intervention 19 mai 2022 3
5 janv. 2020 à 03:32
j'ai teste de mettre des else à tout les if sauf que il n'y a rien que ce passe et je ne sais pas ce que sais qu'un password_hash vous pouvais m'en dire plus ?

Je suis vraiment coincé !
Si jamais vous ne trouver pas le problème auriez-vous un code formulaire deja près a me passer ? si ça ne vous dérange pas bien sur !

Merci !
0
jordane45 Messages postés 38134 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 avril 2024 4 646
5 janv. 2020 à 08:56
je ne sais pas ce que sais qu'un password_hash vous pouvais m'en dire plus


1 - Tu as utilisé dans ton code la fonction password_verify ... comment peux tu ne pas connaitre la fonction password_hash qui va de paire avec ??????
2 - Quand on ne connait pas une fonction.... on se sert de son moteur de recherche... tu trouveras sans mal sur la documentation officielle de php !
0
ScreamFR > jordane45 Messages postés 38134 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 avril 2024
5 janv. 2020 à 16:52
Excuse moi , je me suis mal exprimer je sais que un password_hash est une fonction qui permet que si on acces a votre base de donne les informations sont crypter , je que je voulais dire par m en dire un peu plus c'est comment faire pour ne pas les crypers car aprs j'en aurai besoin pour crée un panel administrateur qui aura acces a tout les mots de passe .
0
jordane45 Messages postés 38134 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 avril 2024 4 646
5 janv. 2020 à 17:48
comment faire pour ne pas les crypers

crypter tu veux dire je suppose... ou plus exactement, on parle de hacher....

Quoi qu'il en soit : On ne consèrve JAMAIS les mots de passe en clair.... question évidente des sécurité.
Et si jamais tu n'as que faire de la sécurité... ben.. pour ne pas les "crypter".. il suffit... de ne pas les crypter !

A savoir que la fonction password_verify ne sert que si tu as utilisé password_hash avant.....
Suffit de réfléchir deux minutes pour s'en rendre compte...


0