IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Script de login / pass avec sessions [Débutant(e)]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Par défaut [Sécurité] Script de login / pass avec sessions
    Hello,
    J'ai un probléme sur la gestion des sessions.
    J'ai une base sql composée de cette sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Table membres : 
    username -> varchar 
    password -> varchar
    Dedans, j'ai inseré juste deux entrées : test/test
    ensuite, je peux prendre les informations suivantes :

    J'ai une page de connection en html suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     <html>
     <head>
     <title>login.html</title>
     </head>
     <body>
     <form name="login" method="post" action="verif_auth.php">
     Nom d'utilisateur:<input type="text" name="user_name"><br>
     Mot de passe:<input type="password" name="password"><br>
     <input type="submit" value="Envoyer">
     </form>
     </body>
     </html>
    Je ne fait juste un post sur verif_auth.php
    Jusque la, tout va bien.
    Maintenant je tente de récuperer les données suivantes :

    verif_auth.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?php
    $user_name = $_POST['user_name'];
    $password = $_POST['password'];
    session_start();
     
    $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion'.mysql_error());
    mysql_select_db('base', $db) or die(mysql_error());
     
    $query = "SELECT * FROM membres WHERE user_name=''.$user_name.'' AND password=''.$user_name.''";
     
    $result = mysql_query($query, $db);
    $affected_rows = mysql_num_rows($result);
     
    if($affected_rows == 1) {
     print 'Vous êtes authentifié';
     
    $_SESSION 'username' = $user_name; }
     else {
     print 'Accès refusé';
    }
    ?>
    Mais ... j'ai une page blanche. Je suis allé chercher un peu partout sur le net, mais je n'arrive pas a mettre le doigt sur cette simple erreur.

    merci de votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Par défaut
    et si tu fais un echo($query)??!! tu te rendras compte que ton code ne fonctionnera jamais

    essaye plutot ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $user_name = "'".$_POST['user_name']."'";
    $password = "'".$_POST['password']."'";
    et surtout ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * FROM membres WHERE user_name=$user_name AND password=$password";

  3. #3
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Salut

    Et puis ceci n'est pas trés fonctionnel :

    Table membres :
    username -> varchar
    password -> varchar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query = "SELECT * FROM membres WHERE user_name=''.$user_name.'' AND password=''.$user_name.''";

  4. #4
    Membre éclairé
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Par défaut
    c vrai, j'avais pas fais attention à ca aussi.
    en fait je lui avais corrigé une erreur sans le signaler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * FROM membres WHERE user_name=''.$user_name.'' AND password=''.$user_name.''";
    bon dans ce cas ta requete pourra etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * FROM membres WHERE username=$user_name AND password=$password"
    sans oublié les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $user_name = "'".$_POST['user_name']."'";
    $password = "'".$_POST['password']."'";
    un conseil de ma part : en cas de problème, essaye tjs d'afficher tes requetes, de voir ce qui ne va pas, et n'hesite pas de les exécuter à la main sur la base de données. Comme ca tu pourra identifier de la partie qui deconne car c pas tjs php (parfois c mysql, parfois php mais tres tres souvent (99,99%) nous meme).

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Par défaut
    Nom d'utilisateur:<input type="text" name="user_name"><br>
    mmmh, l'apostrophe devant utilisateur peut probleme probleme, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $user_name = "'".$_POST['user_name']."'";
    $password = "'".$_POST['password']."'";
    je comprend pas l'intêret de mettre une quote "' et '" à la fin.

    Normalement une simple déclaration tel que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $user_name = $_POST['user_name'];
    devrai pas poser de problème

  6. #6
    Membre éclairé
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Par défaut
    Normalement une simple déclaration tel que
    Code :
    $user_name = $_POST['user_name'];devrai pas poser de problème
    c'est malheureusement toute la différence entre devrait et va pas poser de problème. Moi je dis que ca va poser problème : tu n'as qu'à essayer un truc genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into maTable(var_varchar) values (toto);
    et tu verras jeune homme que mysql va gueuler un bon coup avec un truc genre :
    Unknown column 'toto' in 'field list'
    et il ne va pas la fermer que si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into maTable(var_varchar) values ('toto');
    d'où mes apostrophes!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/06/2007, 23h41
  2. Réponses: 2
    Dernier message: 17/09/2006, 19h21
  3. [Configuration] Problème avec un script de login utilisant une session
    Par HNT dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 27/09/2005, 19h56
  4. [IDHTTP] Problème avec la methode post (login:pass@ww.url)
    Par Rayek dans le forum Web & réseau
    Réponses: 5
    Dernier message: 11/07/2005, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo