Système compte utilisateur

Résolu
aurus1212 -  
 aurus1212 -
Bonjour,
je créer un système de compte sur mon site web, je voit comment sa marche et tout [base de donnée et variable $_SESSION]

mais je bloque sur un truc...

quand le mec rentre son pseudo et son mot de passe je ne voit pas comment vérifier que il y aie le bon pseudo qui et aussi un bon mot de passe que les deux soit sur le même id de compte....

genre

if(pseudo exsiste et mot de passe aussi et qu'il soit sur le même id)
{
création des variables session
}

Voila je pense que sa doit pas être bien dur mais même après 45min de recherche je ne trouve pas :S. donc si vous pourriez m'aidez sa serai cool :D

8 réponses

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    SELECT id, mot_de_passe, grade FROM compte WHERE pseudo=admin
    Il faut mettre des guillemets autour.
    $sql = 'SELECT id, mot_de_passe, grade FROM compte WHERE pseudo="'.$login.'"';
    1
  2. aurus1212
     
    Le code
    ______________________________________________________________
    <?php
    session_start();

    if(isset($_POST['login']) && isset($_POST['password'])) {
    if(empty($_POST['login']) || empty($_POST['password']) {
    echo 'Au moins un champ est vide.';
    afficherFormulaire();
    } else {
    $login = $_POST['login'];
    $password = md5($_POST['password']);

    $pdo = new PDO('mysql:host=localhost;dbname=db_test','root','');
    $sql = 'SELECT 'id', 'password' FROM 'membres' WHERE 'login' = '.$pdo->quote($login);
    $req = $pdo->query($sql);

    if($req->rowCount() > 0) {
    $membre = $req->fetch(PDO::FETCH_OBJ);
    if($membre->password == $password) {
    $_SESSION['id'] = $membre->id;
    echo 'Vous êtes désormais connecté.<br/>'
    . '<a href="index.php">Retour à l\'accueil</a>';
    } else {
    echo 'Mot de passe incorrect.';
    afficherFormulaire();
    }
    } else {
    echo 'Identifiant inconnu.';
    afficherFormulaire();
    }
    }
    } else {
    afficherFormulaire();
    }
    ?>
    _______________________________________________________________

    oui la j'ai un peu compris la logique... mais je n'ai jamais utiliser PDO et je ne vois pas comment faire sa vece le bon vieux Mysql_query :S

    pourrais-tu me donner l'algorytme de ce code ?

    Encore merci à toi Avion-f16
    0
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Lis le texte qu'il y a au-dessus.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. aurus1212
     
    euh pour la création des variables SESSION tu me conseillerai de créer une variables pour tout les infos sur l'utilisateur ou faire que une variable $_SESSION['id'] et je ferai des requêtes sql par rapport à l'id ?
    0
  6. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Perso je préfère ne stocker que l'id.
    Ainsi, s'il y a des changement (pseudo, type de compte, ...), il n'y a pas besoin de se reconnecter. Mais c'est plus lourd.
    0
  7. aurus1212
     
    if(isset($_POST['connecter']))
    {
    $login = $_POST['login'];
    $password = $_POST['password'];
    $sql = 'SELECT id, mot_de_passe, grade FROM compte WHERE pseudo='.$login.'';
    $req = mysql_query($sql) or die ('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
    $nbr_login = mysql_num_rows($req);
    if($nbr_login > 0)
    {
    while($data = mysql_fetch_array($req))
    {
    if($data['mot_de_passe'] == $password)
    {
    $_SESSION['id'] = $data['id'];
    $_SESSION['grade'] = $data['grade'];
    }
    else
    {}
    }
    }
    else
    {}
    }
    else
    {}

    _____________________________________________________________

    sa me mets "Erreur SQL !
    SELECT id, mot_de_passe, grade FROM compte WHERE pseudo=admin
    Champ 'admin' inconnu dans where clause
    "

    mais je ne vois pas la phaute :S
    0
  8. aurus1212
     
    Moi je pense que je vais mettre directement les infos dans les varialbe $_SESSION car il n'y aura pas de grand changement donnée sur les comptes...

    et pour le WHERE id="" bizarre je n'avait jamais mi et sa et sa marchais :S mais la mnt sa marche :D merci à toi
    0