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 :

Connexion compte accès réservé [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut Connexion compte accès réservé
    Bonjour à tous,

    Actuellement débutant en php, j’essaye comme je peux d’apprendre par moi-même, ce qui n’est pas très facile.

    J’ai acheté un livre « PHP & MySql pour les nuls », livre bien détaillé ou l’on retrouve plein d’erreurs. Quand on débute c’est pratique !!!

    Je souhaite réaliser, un site à accès réservé (pour ceux qui ont le livre : chapitre 14)

    Je ne vous cache pas que j’ai repris le code du livre, où j’ai déjà corrigé quelques erreurs, mais lorsque je veux me loguer, il me met « Couldn’t execute query » car il ne peut executer la requète : SELECT loginName FROM Member WHERE loginName='$_POST[fusername]'

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php
    session_start();                                      # 9
     include("xxx.inc");                                  #10
     switch (@$_POST['do'])                                #11
     {
       case "login":                                       #13
         $cxn = mysql_connect($host, $user, $passwd) 
                or die ("Couldn't connect to server.");    #15
    
         $sql = "SELECT loginName FROM Member 
                  WHERE loginName='$_POST[fusername]'";     #18
         $result = mysql_query($sql)
                   or die("Couldn't execute query.");      #20
         $num = mysql_num_rows($result);                  #21
         if ($num > 0)  // login name was found            #22
         {
            $sql = "SELECT loginName FROM Member 
                    WHERE loginName='$_POST[fusername]'
                    AND password=md5('$_POST[fpassword]')";
            $result2 = mysql_query($sql)
                       or die("Couldn't execute query 2.");
            $num2 = mysql_num_rows($result2);
            if ($num2 > 0)  // password is correct         #30
            {
               $_SESSION['auth']="yes";                    #32
               $logname=$_POST['fusername']; 
               $_SESSION['logname'] = $logname;            #34
               $today = date("Y-m-d h:i:s");               #35
               $sql = "INSERT INTO Login (loginName,loginTime)
                       VALUES ('$logname','$today')";
               $result = mysql_query($cxn,$sql) 
                         or die("Can't execute insert query.");
               header("Location: Member_page.php");        #40
            }
            else    // password is not correct             #42
            {
               $message="The Login Name, '$_POST[fusername]' 
                         exists, but you have not entered the 
                         correct password! Please try again.<br>";
               include("login_form.inc");                  #47
            } 
         }                                                 #49
         elseif ($num == 0)  // login name not found       #50
         {   
            $message = "The Login Name you entered does not 
                        exist! Please try again.<br>";
            include("login_form.inc");
         }
       break;                                              #56

    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Commence par proteger les données recues du formulaire avant des les inserer dans la requete.
    Il est navrant qu'un livre n'aborde pas immédiatement les questions pourtant simples de securité.

    Ensuite affiche l'erreur avec mysql_error() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $username = mysql_real_escape_string($_POST[fusername]);
    $password = mysql_real_escape_string($_POST[fpassword]);
     
    $sql = "SELECT loginName FROM Member 
                  WHERE loginName='$username'"; 
         $result = mysql_query($sql)
                   or die(mysql_error());
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Commence par proteger les données recues du formulaire avant des les inserer dans la requete.
    Il est navrant qu'un livre n'aborde pas immédiatement les questions pourtant simples de securité.

    Ensuite affiche l'erreur avec mysql_error() :
    Ok j'ai mis pour le moment mysql_error()

    et il me renvoie No DataBase selected

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Apres le mysql_connect, il faut faire un mysql_select_db
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Apres le mysql_connect, il faut faire un mysql_select_db
    OK, donc j'ai rajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
         $cxn = mysql_connect($host, $user, $passwd) 
                or die ("Couldn't connect to server.");    #15
     
    $db_selected = mysql_select_db($dbname, $cxn);
    if (!$db_selected) {
       die ('Impossible de sélectionner la base de données : ' . mysql_error());
    }
    Maintenant il se connecte mais me dit que mon mot de passe est incorrect alors que je suis sur qu'il l'est... Je vais essayer de trouver

    Merci encore.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Je reviens vers vous avec un autre problème, j'ai précédemment résolu avec votre aide les soucis de connexion à la base, et la création de compte fonctionne.

    Après avoir créer mon compte, je veux m'identifier et il me répond que mon pseudo est OK mais pas mon mot de passe.

    Je pense que cela vient du cryptage md5, lorsque j'ai crée mon compte, il m'a crypté mon password dans ma base, et lorsque je veux me connecter. Il ne dois pas bien décrypter. (voir ligne en gras)

    Voici le code :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
       case "login":                                       #13
         $cxn = mysql_connect($host, $user, $passwd) 
                or die ("Couldn't connect to server.");    #15
         
    	$db_selected = mysql_select_db($dbname, $cxn);
    	if (!$db_selected) {
       		die ('Impossible de sélectionner la base de données : ' . mysql_error());
    	}
    
    
         $sql = "SELECT loginName FROM Member 
                  WHERE loginName='$_POST[fusername]'";     #18
         $result = mysql_query($sql)
                   or die(mysql_error());      #20
         $num = mysql_num_rows($result);                  #21
         if ($num > 0)  // login name was found            #22
         {
            $sql = "SELECT loginName FROM Member 
                    WHERE loginName='$_POST[fusername]'
                    AND password=md5('$_POST[fpassword]')";
            $result2 = mysql_query($sql)
                       or die(mysql_error());
            $num2 = mysql_num_rows($result2);
            if ($num2 > 0)  // password is correct         #30
            {
               $_SESSION['auth']="yes";                    #32
               $logname=$_POST['fusername']; 
               $_SESSION['logname'] = $logname;            #34
               $today = date("Y-m-d h:i:s");               #35
               $sql = "INSERT INTO Login (loginName,loginTime)
                       VALUES ('$logname','$today')";
               $result = mysql_query($sql,$cxn) 
                         or die(mysql_error());
               header("Location: Member_page.php");        #40
            }
            else    // password is not correct             #42
            {
               $message="The Login Name, '$_POST[fusername]' 
                         exists, but you have not entered the 
                         correct password! Please try again.<br>";
               include("login_form.inc");                  #47
            } 
         }                                                 #49
         elseif ($num == 0)  // login name not found       #50
         {   
            $message = "The Login Name you entered does not 
                        exist! Please try again.<br>";
            include("login_form.inc");
         }
       break;                                              #56


    Merci

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

Discussions similaires

  1. connexion compte active directory et Exchange
    Par daninou dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 05/02/2009, 11h44
  2. couplage apache tomcat : accès réservé
    Par mcrbe dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 07/01/2009, 16h13
  3. Paramètres de connexion à compte MySQL chez Free
    Par zebulon9 dans le forum Free
    Réponses: 1
    Dernier message: 24/04/2007, 18h26
  4. Connexion compte ftp
    Par tomfoot dans le forum Composants VCL
    Réponses: 3
    Dernier message: 27/02/2006, 14h37
  5. Tentative de connexion internet:accès interdit
    Par doctorlove dans le forum Réseau
    Réponses: 16
    Dernier message: 05/12/2005, 21h57

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