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

PHP & Base de données Discussion :

protoger une appli par des usernames et password [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 60
    Par défaut protoger une appli par des usernames et password
    slt à tous, o fait je une application et ça fait un bout de temps k je cherche à resoudre un blème.
    j'ai fait une base de donnée sous Mysql dans laquelle il ya une table utilisateur avc les champs (id, username, mot_de_passe, structure, privilège).
    sur la page d'acceuil j'ai un formulaire qui permet à user de s'identifier, mais actuellement tout le passe meme le vide. voici le code ci-dessous:

    <?php
    $checklog=false;
    if (isset($_POST['mot_de_passe']) AND isset($_POST['username'])) // Si les variables existent
    {

    $mot_de_passe = $_POST['mot_de_passe'];
    $username = $_POST['username'];
    }
    // On se connecte d'abord à MySQL pour checker les infos entrées :
    mysql_connect("localhost", "root", "root");
    mysql_select_db("correspondance");
    //requête
    $reponse = mysql_query("SELECT username, mot_de_passe FROM utilisateur WHERE (username='$username' AND mot_de_passe='$mot_de_passe')") or die (mysql_error());
    // On se déconnecte de MySQL
    mysql_close();
    $checklog=true;
    if($checklog)
    {
    include "application.php";
    }
    else
    {
    include "login.php";
    }

    ?>

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 179
    Par défaut
    Bonjour,
    et si tu fais :
    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
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    $checklog=false;
    if (isset($_POST['mot_de_passe']) AND isset($_POST['username'])) // Si les variables existent
    {
     
    $mot_de_passe = $_POST['mot_de_passe'];
    $username = $_POST['username'];
     
    // On se connecte d'abord à MySQL pour checker les infos entrées :
    mysql_connect("localhost", "root", "root");
    mysql_select_db("correspondance");
    //requête
    $reponse = mysql_query("SELECT username, mot_de_passe FROM utilisateur WHERE username='$username' AND mot_de_passe='$mot_de_passe'") or die (mysql_error());
    // On se déconnecte de MySQL
    mysql_close();
    $checklog=true;
     
    }
     
    if($checklog==true)
    {
    include "application.php";
    }
    else
    {
    include "login.php";
    }
    ?>

  3. #3
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 495
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 495
    Par défaut
    salut,
    c'est normal que ca passe toujours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $reponse = mysql_query("SELECT username, mot_de_passe FROM utilisateur WHERE username='$username' AND mot_de_passe='$mot_de_passe'") or die (mysql_error());
    // On se déconnecte de MySQL
    mysql_close();
    $checklog=true;
    tu executes la requete, tu fermes la connexion mysql, puis tu changes $checklog... mais a aucun moment tu verifie le resultat de ta requete...
    par exemple : il n'y a qu'un seul couple log/psw.. ainsi, si ta requete te retourne zero ou plus de 1 lignes, c'est que c'est faux...
    que l'on pourrait traduire ainsi :
    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
    23
    24
    25
    26
    27
    <?php
    $checklog=false;
    if (isset($_POST['mot_de_passe']) AND isset($_POST['username'])) // Si les variables existent
    {
     
    $mot_de_passe = $_POST['mot_de_passe'];
    $username = $_POST['username'];
    }
    // On se connecte d'abord à MySQL pour checker les infos entrées :
    mysql_connect("localhost", "root", "root");
    mysql_select_db("correspondance");
    //requête
    $reponse = mysql_query("SELECT username, mot_de_passe FROM utilisateur WHERE (username='$username' AND mot_de_passe='$mot_de_passe')") or die (mysql_error());
    $num_rows=mysql_num_rows($reponse); //on recupere le nombre de lignes
    // On se déconnecte de MySQL
    mysql_close();
    $checklog= ($num_rows!=1) ? false : true; //s'il y a pas 1 seul enrregistrement, c'est false, non c'est true
    if($checklog)
    {
    include "application.php";
    }
    else
    {
    include "login.php";
    }
     
    ?>
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 60
    Par défaut
    après avoir la solution proposée, le code ne marche tjrs pas, tot le passe

  5. #5
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 495
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 495
    Par défaut
    "tout le passe meme le vide"
    j'avais mal lu ce bout de phrase...
    essaye de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['mot_de_passe']) AND isset($_POST['username']))
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!empty($_POST['mot_de_passe']) AND !empty($_POST['username']))
    en gros, au lieu de tester l'existence des post, tu test s'ils ne sont pas vides
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 60
    Par défaut
    merci infiniment ça marche avc ce code...

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/01/2007, 09h35
  2. Réponses: 5
    Dernier message: 24/05/2006, 15h41
  3. [VBA-E] Séparer les colonnes d'une listbox par des lignes?
    Par mulot03 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2006, 14h03
  4. Modifier une requête par des données différente
    Par leloup84 dans le forum Requêtes
    Réponses: 9
    Dernier message: 06/03/2006, 14h23
  5. Comment déployer une appli contenant des TClientDataSet ?
    Par jobigoud dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/10/2005, 19h18

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