Gérer la connexion des administrateurs et des ulilisateurs

Fermé
dodi - 1 sept. 2016 à 13:18
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 2 sept. 2016 à 10:17
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

2 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
1 sept. 2016 à 14:37
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
Je comprends ce que tu dis :)
et s'il vous plait, pouvez vous me montrer un exemple ?
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
1 sept. 2016 à 17:24
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
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
2 sept. 2016 à 10:17
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