Formulaire de connexion qui tri admin ou user
yoann.gadon
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis en train de faire mon formulaire de connexion et je bloque sur un truc qui me parait simple :/
en fait dans ma base de données les user et admin sont entrés dans la meme table mais un 'x' dans la colonne admin apparait en plus pour les admin.
j'ai donc mis dans mon formulaire en html en caché un x qui est entrée automatiquement dans le champ nommé admin mais je n'arrive pas a concevoir le code qui permet de verifier la présence d'admin dans la base de donnée pour afficher un message différant en cas d'utilisateur classique ou admin
voila le bout de code que j'ai fait mais qui ne fonctionne pas car il ne fait pas la difference et me met a chaque fois 'utilisateur client'
<?php
include('phpconnect.php');
if(isset($_POST) && !empty($_POST['user']) && !empty($_POST['pass']) && !empty($_POST['admin'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pass from utilisateurs where user='".$user."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pass'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
elseif($data['admin'] == 'x' )
{
echo 'admin cool';
}
else {
session_start();
$_SESSION['login'] = $user;
echo '<center>Utilisateur client</a></center>';
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
?>
si vous pouvez m'aider un peu car la je suis bloqué et je n'arrive pas a avancer
merci bcp
je suis en train de faire mon formulaire de connexion et je bloque sur un truc qui me parait simple :/
en fait dans ma base de données les user et admin sont entrés dans la meme table mais un 'x' dans la colonne admin apparait en plus pour les admin.
j'ai donc mis dans mon formulaire en html en caché un x qui est entrée automatiquement dans le champ nommé admin mais je n'arrive pas a concevoir le code qui permet de verifier la présence d'admin dans la base de donnée pour afficher un message différant en cas d'utilisateur classique ou admin
voila le bout de code que j'ai fait mais qui ne fonctionne pas car il ne fait pas la difference et me met a chaque fois 'utilisateur client'
<?php
include('phpconnect.php');
if(isset($_POST) && !empty($_POST['user']) && !empty($_POST['pass']) && !empty($_POST['admin'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pass from utilisateurs where user='".$user."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pass'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
elseif($data['admin'] == 'x' )
{
echo 'admin cool';
}
else {
session_start();
$_SESSION['login'] = $user;
echo '<center>Utilisateur client</a></center>';
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
?>
si vous pouvez m'aider un peu car la je suis bloqué et je n'arrive pas a avancer
merci bcp
A voir également:
- Formulaire de connexion qui tri admin ou user
- Whatsapp formulaire opposition - Guide
- Gmail connexion - Guide
- Formulaire de réclamation facebook - Guide
- Comment faire un tri personnalisé sur excel - Guide
- Formulaire de reclamation instagram - Guide
3 réponses
Salut,
Pourrait-on voir le formulaire en html s'il te plaît ?
Car je ne comprends pas vraiment à quoi correspondent les $_POST['admin'] et $_POST['user']...
Il y a 2 formulaires de connexions ? Un pour les admins, un pour les membres ?
Pourrait-on voir le formulaire en html s'il te plaît ?
Car je ne comprends pas vraiment à quoi correspondent les $_POST['admin'] et $_POST['user']...
Il y a 2 formulaires de connexions ? Un pour les admins, un pour les membres ?
non il y a uniquement un formulaire et justement je voudrait que les admin et les user se connecte via le même mais que le php les envoi sur une page différente
voici le formulaire de connexion
<form action="login.php" method='post'>
<table align="center" border="0">
<tr>
<td>Utilisateur</td>
<td><input type="text" name="user" maxlength="250"></td>
</tr>
<tr>
<td>Mot de passe</td>
<td><input type="password"name="pass" maxlength="250"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Connexion"></td>
</tr>
<tr>
<input type="hidden" name="admin" value="x">
</tr>
</table>
</form>
<BR>
<BR>
voici le formulaire de connexion
<form action="login.php" method='post'>
<table align="center" border="0">
<tr>
<td>Utilisateur</td>
<td><input type="text" name="user" maxlength="250"></td>
</tr>
<tr>
<td>Mot de passe</td>
<td><input type="password"name="pass" maxlength="250"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Connexion"></td>
</tr>
<tr>
<input type="hidden" name="admin" value="x">
</tr>
</table>
</form>
<BR>
<BR>
<?php //tu mets tout y compris le formulaire dans ta page login.php //la partie php au début if(isset($_POST['connexion'])){ if(!empty($_POST['user']) && !empty($_POST['pass']){ //tu fais d'abord connexion a ta BDD //PUIS on recuperes les valeurs postées $user=mysql_real_escapre_string($_POST['user']); //securité $pass=mysql_real_escapre_string($_POST['lpass']); //securité //puis ta requette pour voir si login et pass sont bien dans la BDD $sql = "select* from utilisateurs where user='".$user."' AND pass ='".$pass."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); . if(mysql_num_rows($req) == 1)){ //on a bien trouvé le couple login mdp //on va lire la colonne qui contien eventuellement le X $data=mysql_fetch_assoc($req); session_start(); //demarage session ATTENTION il ne doit y avaoir aucun code HTML avant cette ligne !!!! if($data['admin'] =='X'){ //c'est un admin on initialise la variable de session type_utilisateur $_SESSION['type_utilisateur']='admin'; //tu peux mettre plusieurs variables de session $_SESSION['pseudo']=$user; //puis on redirige vers la page correspondant à admin header('Location:page_acceuil_admin.php'); }else{ //c'est un lambda $_SESSION['type_utilisateur']='client'; $_SESSION['pseudo']=$user; //puis on redirige vers la page utilisateur lambda header('Location:page_acceuil.php'); } } }else{ echo '<p>Vous avez oublié de remplir un champ.</p>'; } } ?> <form action="login.php" method="post"> <table align="center" border="0"> <tr> <td>Utilisateur</td> <td><input type="text" name="user" value="" maxlength="250" /></td> </tr> <tr> <td>Mot de passe</td> <td><input type="password"name="pass" value="" maxlength="250" /></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" name="connexion" value="Connexion" /></td> </tr> <!-- NON <tr> <input type="hidden" name="admin" value="x"> </tr> --> </table> </form> et au debut de toutes les pages php de ton site: <?php session_start(); if(!isset($_SESSION['type_utilisateur']) || $_SESSION['type_utilisateur'] ==""){ //pas de session ouverte donc on redirige vers le formulire de cx header('Location:login.php'); exit; }else{ //une session est bien ouverte donc //ci dessous tout le code de ta page ?> <!DOCTYPE etc.... HTML... <?php //tu peux recuperer variable de session echo "Bonjour ".$_SESSION['pseudo']; if($_SESSION['type_utilisateur']=='X'){ //tu fais eventuellement autre chose } ?> //encore du HTML ... <?php } //fin du else sessioin ?>