Connexion admin/membre
RésoluProgProject Messages postés 81 Statut Membre -
je suis un jeune développeur web.
Voici mon problème:
Je suis entrain de faire un réseau social avec 2 niveau admin=1 et membre=2
seulement je ne sais pas faire pour que quand je me connecte avec un
compte admin ça m'envoie sur admin.php, et que quand je me connecte avec
un compte membre ça m'envoie sur membre.php.
PS: Bien sur je voudrais que seul l'admin puis accéder a admin.php.
Merci de me répondre au plus vite svp.
Voici mon script de connexion:
<?php
session_start();
if(isset($_POST['submit']))
{
$username = mysql_real_escape_string(trim($_POST['pseudo']));
$password = mysql_real_escape_string(trim($_POST['password']));
$password = md5($password);
if(empty($username))
{
echo "<font color='red'>Veuillez saisir un pseudo !</font>";
}else if(empty($password))
{
echo "<font color='red'>Veuillez saisir un Mot de Passe !</font>";
}else{
$connect2;
$login = mysql_query("SELECT * FROM user WHERE username='$username' AND password='$password' ");
$rows = mysql_num_rows($login);
if($rows == 1)
{
$_SESSION['username'] = $username;
header('Location:membre.php');
}else echo "<font color='red'>Pseudo ou Mot de Passe incorrect !</font>";
}
}
?>
<font style="color:white">Pseudo Mot de Passe</font>
<form method="post" action="">
<input style="width:210px;height:30px;" type="text" name="pseudo" placeholder="Votre Pseudo" value="<?php if(isset($_POST['submit'])){echo $_POST['pseudo'];} ?>"/>
<input style="width:210px;height:30px;" type="password" name="password" placeholder="Votre Mot de passe" />
<input style="background-color:#3b5998;color:white" type="submit" name="submit" value="Connexion" />
</form>
1 réponse
Le problème porte sur le contrôle d’accès selon le rôle après connexion: l’utilisateur admin doit être redirigé vers admin.php et le membre vers membre.php, tout en garantissant que seul l’admin accède à admin.php. Plusieurs réponses suggèrent de déterminer le rôle lors de la vérification du login et de stocker ce rôle dans la session (par exemple 'admin' ou 'member'), puis de rediriger en fonction. Autres propositions évoquent l’usage d’un champ profil (1 admin, 2 membre) ou la vérification via deux tables distinctes et l’adaptation du script de connexion. À noter, les conseils soulignent aussi les questions de sécurité (suppression de mysql_, utilisation de password_hash, requêtes préparées) et que md5 seul n’est pas suffisant.
-
slt
il faut utiliser les sessions !
dans ton contrôle d'accès.
si == admin alors $session==admin { direction admin.php }
si == membre alors $session == membre { direction membre.php }
et sur toutes tes pages tu fais un contrôle de la $session {si admin} ou {si membre} pour éviter l'accès direct et pour autoriser soit la page admin.php ou membre.php.
Signature-
-
au moment du contrôle des mots de passe et login.
si le login correspond au mot de passe membre, alors ta session aura la valeur membre
si le login correspond au mot de passe admin, alors ta session aura la valeur admin
et sur les autres pages, tu contrôles cette variable session
des script et exemple ne manque pas sur le net:
https://forums.commentcamarche.net/forum/affich-5549375-php-espace-membre-administration -
-
-
ce que je fais n'est pas très orthodoxe !
Je place une case à cocher sur le formulaire de connexion qui signale que c'est un administrateur qui essaye de se connecter.
Et dans ma base, j'ai une table membre et une table admin.
Si c'est coché alors je cherche la correspondance login mot de passe admin dans la table admin, sinon je cherche dans la table membre.
je préfère pas t'induire en error avec un pseudo script fabrication maison :)
-