PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 13-01-2018 13:49:32

Robinvtn
Membre
Inscription : 13-01-2018
Messages : 2

Formulaire de connexion en PHP - Aide

Bonjour !!
Je suis à peu près débutant en php, mais je sais malgré tout me débrouiller seul.. mais pas cette fois!
Je fais des sites internet pendant mon temps libre quand je m'ennuie, et d'habitude je n'ai aucun soucis avec le système de membre.
Petit soucis, cette fois j'en ai un ! A vrai dire, j'ai changé les codes car ils étaient obsolètes, mais les nouveaux codes ne fonctionnent plus et je ne veux pas revenir aux anciens (soucis de sécurité vous connaissez!)

J'ai tenté de récupérer les codes de système "tout fait" pour résoudre le problème mais rien n'y fait !

Alors j'essaye de faire un ENT (Espace numérique de travail), et là j'en suis au tout début. Bien sûr on ne s'y inscrit pas sur ce site, c'est les professeurs/administrateurs qui inscrivent les élèves et ensuite donnent les codes aux personnes concernées.

Voici le code de ma page de connexion, d'inscription et de connexion à la base de données :

Page de connexion :


<?php include('folders/php/bd.php'); ?>
<div class="well" style="background-color: <?php echo $color; ?>; color: white; height: 550px;">
<div class="container">

  <?php
session_start();

if(isset($_POST['formconnexion'])) {
   $id = htmlspecialchars($_POST['iddd']);
   $mdpconnect = password_hash($_POST['mdp'], PASSWORD_DEFAULT);
   if(!empty($id) AND !empty($mdpconnect)) {
      $requser = $bdd->prepare("SELECT * FROM membres WHERE id = ? AND pass = ?");
      $requser->execute(array($id, $mdpconnect));
      $userexist = $requser->rowCount();
      if($userexist == 1) {
         $userinfo = $requser->fetch();
         $_SESSION['id'] = $userinfo['id'];
         header("Location: moi.php?id=".$_SESSION['id']);
      } else {
         $erreur = "Le mot de passe et l'ID ne correspondent pas.";
      }
   } else {
      $erreur = "Tous les champs doivent être complétés !";
   }
}
?>
   
    <br><br><br><br><h3><?php echo $title; ?></h3>
    <p>  <?php if(isset($erreur)) { echo '<font color="red">'.$erreur."</font>"; } else { echo $connect1; } ?></p>

    <div class="row">
    <div class="col-lg-6">

  <form method="post" action="">

  <div class="form-group">
   <input type="text" name="iddd" class="form-control" placeholder="<?php echo $connect2; ?>">
  </div>

  <div class="form-group">
    <input class="form-control" type="password" name="mdp" placeholder="<?php echo $connect3; ?>">
  </div>

  <button type="submit" name="formconnexion" class="btn btn-info"><?php echo $connect4; ?></button>
  </form>
 
    </div>

</div>
</div>
</div>

Page d'inscription :


<div class="well">
<div class="container">

  <!-- CODE AJOUTER PHP -->
<?php
if(isset($_POST['forminscription'])) {
   $nom = htmlspecialchars($_POST['nom']);
   $prenom = htmlspecialchars($_POST['prenom']);
   $mdp = password_hash($_POST['mdp'], PASSWORD_DEFAULT);
   $classe = htmlspecialchars($_POST['classe']);

   if(!empty($_POST['nom']) AND !empty($_POST['prenom']) AND !empty($_POST['mdp']) AND !empty($_POST['classe'])) {
                     $insertmbr = $bdd->prepare("INSERT INTO membres(nom, prenom, pass, classe) VALUES(?, ?, ?, ?)");
                     $insertmbr->execute(array($nom, $prenom, $mdp, $classe));
                     $erreur = "L'élève a bien été ajouté !";
                  }
   }

?>
   
    <br><br><br><br>


    <div class="row">
    <div class="col-lg-6">
    <h3 style="color: #424242;"><?php echo $inscrip1; ?></h3>
    <?php if(isset($erreur)) { echo '<h5 style="color: #E91E63;">'.$erreur."</h5>"; } ?>
 
  <form action="" method="post">
      <!-- NOM -->
  <div class="form-group">
   <input type="text" name="nom" class="form-control" placeholder="<?php echo $inscrip2; ?>">
  </div>

      <!-- PRENOM -->
  <div class="form-group">
   <input type="text" name="prenom" class="form-control" placeholder="<?php echo $inscrip3; ?>">
  </div>

      <!-- MOT DE PASSE -->
  <div class="form-group">
    <input class="form-control" type="password" name="mdp" placeholder="<?php echo $inscrip4; ?>">
  </div>

  <div class="form-group">
    <input class="form-control" type="text" name="classe" placeholder="<?php echo $inscrip6; ?>">
  </div>

  <button type="submit" name="forminscription" class="btn btn-info"><?php echo $inscrip7; ?></button>
  </form>
 
    </div>

Connexion à la base de données :

<?php
$bdd = new PDO('mysql:host=localhost;dbname=eicpro;charset=utf8', 'root', '');
?>

J'ai fait en sorte que l'utilisateur doit se connecter avec son ID (unique, forcément) et son mot de passe que l'administrateur a choisi pour lui. La page inscription est réservée qu'aux administrateurs/professeurs. Et donc, quand je me connecte, il y a une erreur qui s'affiche "Le mot de passe et l'ID ne correspondent pas", pourtant les identifiants sont corrects!

Capture d'écran des pages :
i1zVd5j.png
s3L0I15.png
EVtOQAF.png

Voilà voilà, merci d'avance !

Dernière modification par Robinvtn (13-01-2018 13:55:02)


Hors ligne

#2 14-01-2018 08:15:16

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 188

Re : Formulaire de connexion en PHP - Aide

Salut,


     if($userexist == 1) {
         $userinfo = $requser->fetch();
         $_SESSION['id'] = $userinfo['id'];
         header("Location: moi.php?id=".$_SESSION['id']);
      } else {
         var_dump($userexist) //
         $erreur = "Le mot de passe et l'ID ne correspondent pas.";
      }

 


@++

Hors ligne

#3 27-01-2018 13:51:11

Robinvtn
Membre
Inscription : 13-01-2018
Messages : 2

Re : Formulaire de connexion en PHP - Aide

Pierrot a écrit :

Salut,


     if($userexist == 1) {
         $userinfo = $requser->fetch();
         $_SESSION['id'] = $userinfo['id'];
         header("Location: moi.php?id=".$_SESSION['id']);
      } else {
         var_dump($userexist) //
         $erreur = "Le mot de passe et l'ID ne correspondent pas.";
      }

 


@++

Merci beaucoup ! Je peux avancer grâce à vous, mais une erreur s'affichait en me disant qu'il y avait une erreur syntaxe, j'ai ajouté un point virgule (;) derrière " ($userexist) " et cette erreur semble avoir été résolue. Mais mon formulaire pour se connecter ne s'affiche plus.. 5sQBDVN.png

Hors ligne

Pied de page des forums