Bonjour, après avoir eu une grand d'aide de membre confirmer sur ce forum j'aimerais savoir une ou 2 chose.

Avec ce code puis-je faire une sorte de grade genre le membre a le niveau : 1 sa cache le bouton administration et l'administrateur le niveau : 2
avec cette base je c'est déja programmer la partie administration de mon site internet !. ( Le nom que je donne à ma base de donée et niveau donc le niveau du membre 1 ou 2) !.

<?php
if(!empty($_POST)){
    $identifiant = $_POST'identifiant'];
    $passe = md5($_POST'passe']);
    $q = array('identifiant'=>$identifiant, 'passe'=>$passe);
    $sql = 'SELECT identifiant,passe FROM me_utilisateur WHERE identifiant = :identifiant AND passe = :passe';
    $req = $cnx->prepare($sql);
    $req->execute($q);
    $count = $req->rowCount($sql);
    if($count == 1){
        //Verifier si l'utilisateur est actif
        $sql = 'SELECT identifiant,passe FROM me_utilisateur WHERE identifiant = :identifiant AND passe = :passe AND etat = 1';
        $req = $cnx->prepare($sql);
        $req->execute($q);
        $actif = $req->rowCount($sql);
        if($actif == 1){
            $_SESSION'Auth'] = array(
                'identifiant' => $identifiant,
                'passe' => $passe,
            );
            if($actif == 1){
$_SESSION'identifiant'] = $identifiant;
header('Location:index.php');
}
        }else{
            $error_actif = 'Votre compte n\'est pas actif ! Verifier vos mails pour activer votre compte !';
        }
    }else{
        //Si utilisateur inconnu
        $error_unknown = 'Votre Identifiant ou Mot de passe ne sont pas bon !';
    }
}
?>

7 réponses


Benjamin Derepas
Réponse acceptée

Peut être que tu devrais reprendre les bases de PDO ...
site du zero ?

Pour récupérer une valeur, tu dois "fetcher" ton résultat de la sorte :

$sql = 'SELECT identifiant,passe,email FROM me_utilisateur WHERE identifiant = :identifiant AND passe = :passe AND etat = 1';
$req = $cnx->prepare($sql);
$req->execute($q);
$req->fetch();
pcinfo-72
Auteur
Réponse acceptée

J'ai trouver la reponse à ma question vraiment génial ce site internet !.

Site du zéro Récupérer les données

Bien sur, rajoute dans ta base de donnée le champ "rang" de type int (1 => visiteur, 2= admin, 3 = master )
Quand l'utilisateur est connecté, reste plus qu'a faire un petit switch (c'est un exemple, il existe d'autres possibilités) :

$_SESSION'rang'] = 1
switch ($_SESSION'rang']
{
    case 1:echo 'Vous êtes simple visiteur';
    break;
    case 2:echo 'Vous êtes un administrateur';
    break;
    case 3:echo 'Bonjour au maitre du site !';
    break;
}

Bonjour,
à ta place je changerai le champ "etat" par "rang":
0 => pas actif
1 => visiteur
2 => admin
3 => master
..etc
Donc si l'utilisateur est actif, sont rang est strictement supérieure à 0.

Et donc le code pour mettre sur le bonton je pence qu'il y ais un truc a faire du genre avec ce code la => 3

<?php if(isset($_SESSION'rang']) => 3 ):?>
   <?php else:?>
  <li class="dropdown"> 
 <a href="admin.php" style="cursor:crosshair"> Administration </a>
<?php endif;?>

Et ou placer ce code çi que tu ma donner

$_SESSION'rang'] = 1

switch ($_SESSION'rang']
{
    case 1:echo 'Vous êtes simple visiteur';
    break;

    case 2:echo 'Vous êtes un administrateur';
    break;

    case 3:echo 'Bonjour au maitre du site !';
    break;
}

J'ai donc essayer par exemple de récuperer mon email en requète mai rien ne vient

<?php

if(!empty($_POST)){
    $identifiant = $_POST'identifiant'];
    $passe = md5($_POST'passe']);

    $q = array('identifiant'=>$identifiant, 'passe'=>$passe);
    $sql = 'SELECT identifiant,passe,email FROM me_utilisateur WHERE identifiant = :identifiant AND passe = :passe';
    $req = $cnx->prepare($sql);
    $req->execute($q);
    $count = $req->rowCount($sql);
    if($count == 1){
        //Verifier si l'utilisateur est actif
        $sql = 'SELECT identifiant,passe,email FROM me_utilisateur WHERE identifiant = :identifiant AND passe = :passe AND etat = 1';
        $req = $cnx->prepare($sql);
        $req->execute($q);
        $actif = $req->rowCount($sql);
        if($actif == 1){
            $_SESSION'Auth'] = array(
                'identifiant' => $identifiant,
                'passe' => $passe,
                <strong>//pas besoin d'inserer e-mail ici</strong>
            );
            if($actif == 1){
$_SESSION'identifiant'] = $identifiant;
$_SESSION'email'] = $email;
header('Location:index.php');
}
        }else{
            $error_actif = 'Votre compte n\'est pas actif ! Verifier vos mails pour activer votre compte !';
        }
    }else{
        //Si utilisateur inconnu
        $error_unknown = 'Votre Identifiant ou Mot de passe ne sont pas bon !';
    }
}
?>

Oui je pence personnellement je suis caler mysql pur mai la sécuriter ma dit de passer sur le PDO qui et beaucoup plus léger je vais songer a revoir ce fameux site du zéro mericu de ta réponse !.