Vous n'êtes pas identifié(e).
Pages :: 1
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
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 :
<!-- 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 :
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 :
Voilà voilà, merci d'avance !
Dernière modification par Robinvtn (13-01-2018 13:55:02)
Hors ligne
Salut,
@++
Hors ligne
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..
Hors ligne
Pages :: 1