begin process at 2012 05 30 01:48:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Base de données

 > 

SQL

 > 

probleme d'authentification


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme d'authentification

jeudi 2 août 2007 à 12:23:06 | probleme d'authentification

neofenix

bonjour a tous et oui c'est encore moi ^^
voila je crée un programme qui permet de creer un compte sur un serveur mysql et l'utilisateur peut ensuite s'authentifier avec un login et un mot de passe.
a chaque fois que je clique sur connexion ma requete pour verifier si l'utilisateur est enregistré dans la base de données j'ai mon programme qui plante.
je le démarre donc en mode debug pour trouver l'erreur et la surprise sa plante pas et je suis authentifié -_-

je comprend pas du tout d'ou proviens mon erreur donc si vous pouviez m'aider sa serais super
voila mon code :

#include "global.h"

#define __LCC__
#include <stdio.h>
#include <mysql.h>
#include <conio.h>
#include <time.h>
#include <iostream>
#include <string>


using namespace std;
bool connec(HWND hWnd, char* Log, char* Mdp)
{
    const char * hostname,*user,*password;
    unsigned int port;
    MYSQL *mysqlconnexion;
    MYSQL_ROW myROW;
    MYSQL_RES *myRES;

//initialisation des parametres de connexion
    hostname="mon serv";
    user="user";
    password="monpassword";
    port=3306;
    //initialisation du gestionnaire de la connexion à la base de données mySQL
    mysqlconnexion=mysql_init(NULL);
       
        if(!mysqlconnexion)
        {
            MessageBox(hWnd,"Echec de l'initialisation du gestionnaire de la connexion mysql","Erreur",MB_OK);
            return false;
        } 
        //tentative de connexion au serveur mySQL
                if (!mysql_real_connect(mysqlconnexion,hostname,user,password,"mabase",port,NULL,0))
        {
                MessageBox(hWnd,"Echec lors de la tentative de connexion au serveur mySQL","Erreur",MB_OK);
                return false;
        }
        string req="select pseudo";
        req =req + " from joueur where pseudo='";
        req =req + Log;
        req =req + "'and mdp='";
        req =req + Mdp;
        req =req + "'";

        mysql_query(mysqlconnexion,req.c_str());
       
        //initialisation du jeu de résultats et l'enregistre dans le client       
        myRES = mysql_store_result(mysqlconnexion);
        if (myRES)
        {
            //parcours de l'ensemble des lignes du resultat myRES
            for(unsigned int i = 0; i < myRES->row_count /*nombre de lignes dans la structure du resultat*/; i++)
            {
                myROW = mysql_fetch_row(myRES);
                for(unsigned int j = 0; j < mysql_num_fields(myRES)/*nombre de champs(colonnes) dans une ligne du resultat*/; j++)
                {
                    //affichage de la valeur du J ème champs de la ligne en cours du resultat.
                    MessageBox(hWnd,myROW[j],"test",MB_OK);
                }
            }
            //Libèration de la mémoire allouée au résultat myRES
            mysql_free_result(myRES);
        }
        else
        {
            MessageBox(hWnd,"Erreur.\nVerifiez le login et le mot de passe","Erreur",MB_OK);
            return false;
        }
        // fermeture de la connexion et libèration du pointeur de connexion mysqlconnexion
        mysql_close(mysqlconnexion);

        return true;
}

Cordialement,
Neofenix
samedi 4 août 2007 à 10:01:51 | Re : probleme d'authentification

neofenix

Pour infos l'erreur relevée lorsque le programme plante est system.NullReferenceException si sa peut vous aider
samedi 4 août 2007 à 12:02:27 | Re : probleme d'authentification

omnia

salut, pour :

myRES->row_count

et

mysql_num_fields(myRES)

tu dvrais effectuer un teste avant leurs boucles for a mon avis ^^


lundi 6 août 2007 à 09:29:06 | Re : probleme d'authentification

neofenix

merci de ton aide omnia.
j'ai essayé de faire un test sur myRES->row_count
et
mysql_num_fields(myRES)
mais cela ne change rien
lundi 6 août 2007 à 09:35:35 | Re : probleme d'authentification

omnia

Réponse acceptée !
bon j'avais pas vue un truc: c'est casiement sur c'est sa ton problème car le mode débug cloisonne et élargie les zones mémoire, du coup en cas d'écriture sur des zones non utilisés de la mémoire sa ne plante pas alors que dans un programme en mode release sa plante casiement a tout les coups :

const char * hostname,*user,*password;

//initialisation des parametres de connexion
    hostname="mon serv";
    user="user";
    password="monpassword";

Je ne vois pas d'allocation de mémoire pour tes pointeurs la ^^

a modifier:


#define hostname "mon serv"
#define user "user"
#define password "monpassword"

lundi 6 août 2007 à 11:05:11 | Re : probleme d'authentification

neofenix

Super sa marche merci omnia si tu etais devant moi je te baiserais les pieds ^^.

lundi 6 août 2007 à 11:32:50 | Re : probleme d'authentification

neofenix

désolé je me suis laissé un peu emporté je crois car quand j'ai fais le test c'etait en mode debug
lundi 6 août 2007 à 11:43:21 | Re : probleme d'authentification

neofenix

c'est louche car je me sert a peu pres du meme code pour creer un compte dans la base de données sans probleme il n'y a que la requete qui change
lundi 6 août 2007 à 16:00:22 | Re : probleme d'authentification

omnia

Ok, alors déja pour commencer vire le mode debug et met en release ^^

il faudrait faire un test:

            //parcours de l'ensemble des lignes du resultat myRES
            for(unsigned int i = 0; i < myRES->row_count /*nombre de lignes dans la structure du resultat*/; i++)
            {
                myROW = mysql_fetch_row(myRES);
                for(unsigned int j = 0; j < mysql_num_fields(myRES)/*nombre de champs(colonnes) dans une ligne du resultat*/; j++)
                {
                    //affichage de la valeur du J ème champs de la ligne en cours du resultat.
                    MessageBox(hWnd,myROW[j],"test",MB_OK);
                }
            }

si tu met sa en commentaire sa plante plus ?


lundi 6 août 2007 à 16:04:55 | Re : probleme d'authentification

omnia

et une autre question pour ta requete

(je ne fait pas de c++ casiment et n'utilise pas string)

        string req="select pseudo";
        req =req + " from joueur where pseudo='";
        req =req + Log;
        req =req + "'and mdp='";
        req =req + Mdp;
        req =req + "'";

si tu mettait Log et Mdp en, string plutot que char * ?????

en gros tu fait un test ou tu fait directement : string req = "select pseudo from joueur where pseudo='lepseudo' and mdp='toto';";



1 2

Cette discussion est classée dans : req, mysql, connexion, include, mysqlconnexion


Répondre à ce message

Sujets en rapport avec ce message

probleme avec une string [ par neofenix ] bonjour a tous,voila je suis  depuis un moment sur un projet personnelle et je me casse la tete depuis un moment  sur un probleme.Alors j'ai une base problème de connexion à une base de données dans C [ par boualiasma ] Salut,1)- Je voudrais connecter à une base des données crée sous Mysql  de version 5.1.30le dossier d'installation est : C:\Program Files\EasyPHP 3.0\ Demande d'aide c++ et requête SQL [ par juliette666 ] Bonsoir a tous pour commencer j'utilise visual studio 2010 (c++ console) et pour ma BD c'est MySQL. j'ai Connexion.h,Connexion.cpp et main.cpp voila [LINUX] Connexion mysql en C [ par JuJu ] Bonjour,J'essaie de programmer une connexion mysql en C afin d'y insérer un enregistrement.Voici mon code actuel :==================================== connexion a mysql depuis microsoft VC++.net [ par theudd ] bonjour a tous. mon probleme consiste a faire un code pour avoir acces a une base de donnee mysql. la question a ete traite sur ce site pour VC++.6 ma Segmentation Fault avec Mysql API [ par BenjZ ] Salut à tous,J'ai un GROS et URGENT problème euh... existentielJe n'arrive pas à faire une simple appli pour me connecter à MYSQL depuis C++, sans qu' C++ VS Mysql [ par ours_aquatique ] Bonjour ,Aprés une semaine de recherche infructueuse , j'ai toujours le probleme suivant:je compile sous devC++ j utilise Mysql (V4.et des poussieres) Probleme Connexion bdd mysql [ par biglulu77420 ] J'ai un souci pour me connecter à ma bdd. J'utilise Devcpp, et je code en C.j'ai des msg d'erreur du type :C:\mysql\lib\opt\mysqlclient.lib(./release/ Mysql probleme de connexion [ par ours_aquatique ] Bonjour je compile avec devC++ sous XP et en utilisant "mysql-4.1.9-win32" , je cherche pour l'instant a creer une fonction console en C++ pour agir d connexion à une base mysql sous linux [ par progrima ] bonsoir!!je vouderais réaliser un programme qui : lit des données d'une base access installée sous windows 2003 server et par la suite se connecte à u


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 11,965 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales