Mot de passe [Résolu]

Signaler
Messages postés
31
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 mai 2008
-
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007
-
Salut tout le monde je suis bien une débutante avec C++.Net 2003,
et je suis entrain de faire une interface qui demande la saisie d'un nom d'utilisateur et d'un mot de passe.

nom d'utilisateur: login
mot de passe: password

Si on clicke sur Ok, la fonction suivante va se dérouler

private: System::Void button1_Click(System::Object * sender,System::EventArgs * e)
{
if(textname->Text=="")
{
System::Windows::Forms::MessageBox::Show("Entrez votre nom");
textname->Text="";
textpass->Text="";
}
else if(textpass->Text=="")
{
System::Windows::Forms::MessageBox::Show("Entrez votre mot de passe");
textname->Text="";
textpass->Text="";
}
else if((textname->Text!="login")&&(textpass->Text!="password"))
{
essai++;
if(essai<3)
{
System::Windows::Forms::MessageBox::Show("Nom d'utilisateur ou mot de passe incorrect");
textname->Text="";
textpass->Text="";
textname->Focus();
}
else
this->Close();
}
else
{
System::Windows::Forms::MessageBox::Show("Bienvenue");
this->Close();
}

}

Mais toujours, le programme m'affiche Nom d'utilisateur ou mot de passe incorrect
Qu'est-ce que je doit faire pour régler ce problème.
Merci à tous et n'oubliez pas que je suis débutante et si quelqu'un peut m'aider à trouver des cours intérrésants sur le Net.
J'ai cherché mais j'ai rien trouvé.
Je compte sur vous et merci.

19 réponses

Messages postés
31
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 mai 2008

c'est un problème des strings managées ...

Il faut utiliser plutot
String::Compare


if(String::Compare(textname->Text,"login") == 0 //egal

Merci à tous
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

tu veux tester si le nom d'utilisateur OU le mot de passe est incorrect, or
tu utilise l'opérateur ET (&&) au lieu de OU (||).


Jah bless my code
Messages postés
31
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 mai 2008

je veux tester si le nom d'utilisateur=login et le mot de passe=password
et si ça est vrai j'affiche Bienvenue
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

si le login et le mot de passe sont juste ont passe,
donc on ne passe pas dans tous les autres cas.

le contraire de :
if((textname->Text=="login")&&(textpass->Text=="password"))

c'est
if((textname->Text!="login")||(textpass->Text!="password"))
ou
if(!((textname->Text=="login")&&(textpass->Text=="password")))


Jah bless my code
Messages postés
98
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
24 janvier 2018

salut,jai limpression que t'abuses des else if et en plus comme le disais Kangourou_Nomade j'utiliserai un OU et non un ET dans le teste.
Messages postés
31
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 mai 2008

J'ai essayé tous les cas même aprés la correction.
Le programme toujours m'affiche Nom d'utilisateur ou mot de passe incorrect
Merci.
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

alors le probleme vient peut etre de l'operateur = dans : textname->Text!="login", il compare peut etre le pointeur avec la chaine (a prendre avec des pincettes, je ne connais pas .NET).
Alors essai peut etre ca :

//en haut du fichier :
#include <string>
using std::string;

//Pis ta methode :

private: System::Void button1_Click(System::Object * sender,System::EventArgs * e)
{
string login = textname->Text;
string pass = textname->Text;

if(login.size()){
System::Windows::Forms::MessageBox::Show("Entrez votre nom");
textname->Text="";
textpass->Text="";
}
else if(pass.size())
{
System::Windows::Forms::MessageBox::Show("Entrez votre mot de passe");
textname->Text="";
textpass->Text="";
}
else if((login!="login")||(pass!="password"))
{
++essai;
if(essai<3)
{
System::Windows::Forms::MessageBox::Show("Nom d'utilisateur ou mot de passe incorrect");
textname->Text="";
textpass->Text="";
textname->Focus();
}else
this->Close();
}
else{
System::Windows::Forms::MessageBox::Show("Bienvenue");
this->Close();
}

}


Jah bless my code
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

heu boulette :
string login = textname->Text;
string pass = textpass->Text;


Jah bless my code
Messages postés
31
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 mai 2008

error C2440: 'initialisation' : impossible de convertir de 'System::String __gc *' en 'std::basic_string<_Elem,_Traits,_Ax>'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

alors apparement, textname->Text, est bien un pointeur (surement unpointeur d'objet, encore a prendre avec des pincettes, je fais des suppositions sur un framework que je ne connais pas du tout).
as tu essaye de faire textname->Text-> pour voir si Text n'a pas des fonctions membre du genre getText() ?


Jah bless my code
Messages postés
31
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 mai 2008

textname a une fonction membre get_Text( ):Textname->get_Text( )
et
textname->Text-> a deux fonctions membres get_Chars( ) : Textname->Text->get_Text( )
get_Length( ):Textname->Text->get_Length( )
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

ben remplace tes textname->Text par des textname->Text->get_Text()

Jah bless my code
Messages postés
31
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 mai 2008

La même erreur C2440 se produit.
Messages postés
31
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 mai 2008

textname a une fonction membre get_Text( ):Textname->get_Text( )
et
textname->Text-> a deux fonctions membres get_Chars( ) : Textname->Text->get_Chars( )
get_Length( ):Textname->Text->get_Length( )
Messages postés
31
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 mai 2008

J'ai rien compris.
Tout est mélangé Textname->get_Text(),Textname->Text.
Qu'est ce que je fais?
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

ha enfin un fille sur CS :)
lol
enfin, moi borland sa me depasse et sa me soule.
bonne chance
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

damned, je me suis gouree pas borland ....
Messages postés
31
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 mai 2008

Pourquoi tu m'a laissé toute seule Kangourou_Nomade
Où tu a passé
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

Desolé, c'est vrai que je t'es un peu abandonné, mais ça je ne l'aurais jamais trouvé, du simple fait que je n'ai jamais utilisé la frameworks .NET. En tout cas c'est la classe de poser une question, de galérer et de se répondre sur son propre topic.
Bien joué.


Jah bless my code