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

GTK+ avec C & C++ Discussion :

Copie de l'identifiant et du mot de passe pour comparaison (strcmp)


Sujet :

GTK+ avec C & C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Copie de l'identifiant et du mot de passe pour comparaison (strcmp)
    Bonjour

    Voici mon 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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    #include <stdio.h>
    #include <stdlib.h>
    #include <gtk/gtk.h>
    #include "variables.h"
     
    void on_activate_entry(GtkWidget *pEntry, gpointer data);
    void on_copier_button(GtkWidget *pButton, gpointer data);
     
    void Identification(gpointer data, int x)
    {
        GtkWidget *pWindow;
        GtkWidget *pVBox;
        GtkWidget *pEntry;
        GtkWidget *pLabel;
        GtkWidget *pButton;
        GtkWidget *pFrame;
        GtkWidget *pVBoxFrame;
     
        char log[20];
        char pass[20];
     
        gchar *sUtf8;
     
        pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pWindow), "Identification");
        gtk_window_set_default_size(GTK_WINDOW(pWindow), 320, 200);
        gtk_window_set_position(GTK_WINDOW(pWindow), GTK_WIN_POS_CENTER);
        g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
        pVBox = gtk_vbox_new(TRUE, 0);
        gtk_container_add(GTK_CONTAINER(pWindow), pVBox);
     
         /* Creation du premier GtkFrame */
        pFrame = gtk_frame_new("Identification");
        gtk_box_pack_start(GTK_BOX(pVBox), pFrame, TRUE, FALSE, 0);
     
        /* Creation et insertion d une boite pour le premier GtkFrame */
        pVBoxFrame = gtk_vbox_new(TRUE, 0);
        gtk_container_add(GTK_CONTAINER(pFrame), pVBoxFrame);
     
        /* Creation et insertion des elements contenus dans le premier GtkFrame */
        pLabel = gtk_label_new("Identifiant :");
        gtk_box_pack_start(GTK_BOX(pVBoxFrame), pLabel, TRUE, FALSE, 0);
        pEntry = gtk_entry_new();
        gtk_box_pack_start(GTK_BOX(pVBoxFrame), pEntry, TRUE, FALSE, 0);
    puts(strcpy(log, ));
        sUtf8 = g_locale_to_utf8("Mot de passe :", -1, NULL, NULL, NULL);
        pLabel = gtk_label_new(sUtf8);
        g_free(sUtf8); 
        gtk_box_pack_start(GTK_BOX(pVBoxFrame), pLabel, TRUE, FALSE, 0);
    puts(strcpy(log, ));
        pEntry = gtk_entry_new_with_max_length(20);
        gtk_entry_set_visibility(GTK_ENTRY(pEntry), FALSE);
        gtk_entry_set_invisible_char(GTK_ENTRY(pEntry), '*'); 
        gtk_box_pack_start(GTK_BOX(pVBoxFrame), pEntry, TRUE, FALSE, 0);
     
        pButton = gtk_button_new_with_label("OK");
        gtk_box_pack_start(GTK_BOX(pVBox), pButton, TRUE, FALSE, 0);
     
        /* Connexion du signal "activate" du GtkEntry */
       if((strcmp(log,"admin")==0)&&(strcmp(pass,"admin")==0)&&(x==1))
       {
            g_signal_connect(G_OBJECT(pEntry), "activate", G_CALLBACK(AjoutPersonne), (GtkWidget*) pLabel);
       }
     
       //if((strcmp(log,"admin")==0)&&(strcmp(pass,"admin")==0)&&(x==2))
     
        gtk_widget_show_all(pWindow);
     
        gtk_main();
     
        return;
    }
    Mon problème est le suivant. Je souhaite récupérer les données saisies pour pouvoir les comparer.
    Suis-je obliger de passer par une copie de ces chaines de caractères ?
    Quelle est la meilleure solution ?
    Je suis débutant avec cette bibliothèque je vous serais donc reconnaissant de m'aider.

    Cordialement

    PS : si vous voyez des choses suspecte dans ce code n'hésitez pas

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 37
    Points
    37
    Par défaut
    Tu peux récupérer les données avec la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const gchar *       gtk_entry_get_text                  (GtkEntry *entry);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    if (strcmp ("admin", gtk_entry_get_text (GTK_ENTRY(entry_log))) == 0)
    ...

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut reponse
    JE suis débutant en GTK et j'avoue n'avoir pas reussit a apporter la modif dont tu me fait part. Pourrait tu s'il te plit etre plus explicite

    Merci bcp

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 37
    Points
    37
    Par défaut
    petit exemple

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    #include <gtk/gtk.h>
    #include <string.h>
     
    struct _Login
    {
    	GtkWidget *entry_login;
    	GtkWidget *entry_passwd;
    };
    typedef struct _Login Login;
     
    static void on_check_login (GtkWidget *, Login *);
     
    int main (int argc, char **argv)
    {
     
    GtkWidget *window;
    GtkWidget *hbox;
    GtkWidget *label_login;
    GtkWidget *label_passwd;
    GtkWidget *button_check;
    Login login;
     
    	gtk_init (&argc, &argv);
     
    	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    	g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
     
    	hbox = gtk_hbox_new (FALSE, 0);
    	gtk_container_add (GTK_CONTAINER (window), hbox);
     
    	label_login = gtk_label_new ("Login: ");
    	gtk_box_pack_start (GTK_BOX (hbox), label_login, FALSE, FALSE, 0);
    	login.entry_login = gtk_entry_new ();
    	gtk_box_pack_start (GTK_BOX (hbox), login.entry_login, FALSE, FALSE, 0);
     
    	label_passwd = gtk_label_new ("Password: ");
    	gtk_box_pack_start (GTK_BOX (hbox), label_passwd, FALSE, FALSE, 0);
    	login.entry_passwd = gtk_entry_new ();
    	gtk_box_pack_start (GTK_BOX (hbox), login.entry_passwd, FALSE, FALSE, 0);
     
    	button_check = gtk_button_new_with_label ("Check");
    	gtk_box_pack_start (GTK_BOX (hbox), button_check, FALSE, FALSE, 0);
    	g_signal_connect (G_OBJECT (button_check), "clicked", G_CALLBACK (on_check_login), &login);
     
    	gtk_widget_show_all (window);
    	gtk_main ();
     
    	return 0;
     
    }
     
    static void on_check_login (GtkWidget *widget, Login *login)
    {
     
    	if (strcmp ("Admin", gtk_entry_get_text (GTK_ENTRY(login->entry_login))) == 0 && strcmp ("Admin", gtk_entry_get_text (GTK_ENTRY(login->entry_passwd))) == 0)
    		g_print ("Confirmed!\n");
    	else
    		g_print ("Denied!\n");
     
    }

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Alors j'ai essayer d'intégrer cela dans mon code mais ca ne fonctionne pas mieux.
    Le gprint ne fait rien

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/06/2010, 11h24
  2. Changement d'identifiant et de mot de passe
    Par hélène2 dans le forum C#
    Réponses: 0
    Dernier message: 28/04/2009, 10h39
  3. Entrer un identifiant et un mot de passe avec VBS sur un site
    Par Heavy Metal Hero dans le forum VBScript
    Réponses: 2
    Dernier message: 07/12/2008, 15h48
  4. Copy de fichier sur réseau avec mot de passe
    Par Guile dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 07/10/2005, 15h45

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