Gérer la connexion des administrateurs et des ulilisateurs

dodi -  
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai une base de données "ma_base" dont j'ai deux tables , une des membres et l'autre des administrateurs (je sais si c'est faisable)

mais j'arrive pas à gérer les session et identifier si c'est un admin ou non pour le rediriger à des "home1.html" alors que le membre vers "home2.html" ,voilà le début de mon code , la première partie du connect.php est fausse et il faut que j'ajoute des conditions ou? jai aucune idée :(

<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="connect.php">
<p>Votre pseudo</p>
<input type="text" name="pseudo" placeholder="pseudo" /> <br>
<p>Votre mot de passe</p>
<input type="pass" name="pass" placeholder="Entrez votre mot de passe" /> <br> <br>
<p>email</p>

<input type="submit" name="submit" value="Se connecter">
</form>
</body>
</html>

<?php
$pass_hache = sha1($_POST['pass']);

$req = $bdd->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass');
$req->execute(array(
'pseudo' => $pseudo,
'pass' => $pass_hache));

$resultat = $req->fetch();

if (!$resultat)
{
echo 'Mauvais identifiant ou mot de passe !';
}
else
{
session_start();
$_SESSION['pseudo'] = $pseudo;
echo 'Vous êtes connecté !';
}
Votre aide s'il vous plait
A voir également:

2 réponses

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Salut,

pour faire ce genre de chose, le plus simple est d'avoir une seule table "utilisateurs" dans laquelle tu as un champs "admin" que tu mets à 1 ou 0 suivant ce que tu veux, tu réalises la connexion de tes utilisateurs, et une fois la connexion validée, tu vérifies s'il s'agit d'un admin ou non, et là tu rediriges vers la page de ton choix.
2
dodi
 
Je comprends ce que tu dis :)
et s'il vous plait, pouvez vous me montrer un exemple ?
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Un truc du genre (en reprenant ton code...)

<html>
    <head>
        <title></title>
    </head>
    <body>
        <form method="post" action="connect.php">
            <p>Votre pseudo</p>
            <input type="text" name="pseudo" placeholder="pseudo" /> <br>
            <p>Votre mot de passe</p>
            <input type="pass" name="pass" placeholder="Entrez votre mot de passe" /> <br> <br>
            <p>email</p>

            <input type="submit" name="submit" value="Se connecter">
        </form>
    </body>
</html>

<?php
$pass_hache = sha1($_POST['pass']);

$req = $bdd->prepare('SELECT id, admin FROM membres WHERE pseudo = :pseudo AND pass = :pass');
$req->execute(array(
    'pseudo' => $pseudo,
    'pass' => $pass_hache));

$resultat = $req->fetch();

if (!$resultat) {
    echo 'Mauvais identifiant ou mot de passe !';
} else {
    $_SESSION['pseudo'] = $pseudo;
    $_SESSION['id'] = $resultat['id'];
    if ($resultat['admin']) {
        header('Location: http://chemin.vers.page/admin.php/');
    }
    else {
        header('Location: http://chemin.vers.page/utilisateur.php/');
    }
} 


Je n'ai pas testé, à toi d'adapter.
0
dodi
 
J'aurais pas besoin de preciser la base de données ?
comme
mysql_connect("localhost","root","");
Mysql_select_db('ma_base); ?
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
J'ai repris le code que tu as mis un peu plus haut, ni plus, ni moins. Donc à toi de savoir ce que tu faisais avec ton code et à faire de même en adaptant par rapport à ce que j'ai indiqué.
0