Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Android] Problema form login

    Ciao a tutti ho iniziato da poco a studiare Java abbinato a Mysqlite, e adesso ho voluto cimentarmi nella creazione di un form di login la registrazione funziona benissimo e riporta tutti i risultati correttamente all'interno del database.
    Il problema è nel login poichè la condizione di "login succesful" avviene solo con l'ultimo "profilo" registrato.
    Come risolvo?
    (Ovviamente tutto e collegato ad un form xml)
    Allego i due file uno della registrazione e l'altro del login.
    Grazie
    File allegati File allegati

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Alcune considerazioni inerenti il forum.

    1) Non hai specificato che si tratta di Android: è un'informazione essenziale e determinante. L'ho aggiunta io come TAG nel titolo.
    2) Il codice, quando non è corposo (e tu hai solo poche righe di codice in tutto), sarebbe meglio postarlo direttamente nel messaggio e non includerlo come allegato. Così è di più immediata consultazione.


    PS: usare un oggetto Integer per un ciclo for non è per nulla performante... molto meglio affidarsi ad un tipo primitivo int (meno lavoro per il compilatore e per la l'esecutore stesso).

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    codice:
     for (Integer j = 0; j < count; j++) {            
            user_temp=d.getString(d.getColumnIndex("fname"));
            password_temp=d.getString(d.getColumnIndex("lname"));
            if((user.equals(user_temp)&&(password.equals(password_temp)))){
                setContentView(R.layout.login_succesful);
            }
            else{
                setContentView(R.layout.login_failed);                
            }            
            d.moveToNext();
                
     }
    E' ovvio perché lui cicla fino alla fine.
    Non conviene inserire un booleano per fare questo?
    Non conosco bene java per Android ma questo dovrebbe funzionare:

    codice:
    ...
    boolean b = false;
    for (int j = 0; j < count; j++) {            
         user_temp=d.getString(d.getColumnIndex("fname"));
         password_temp=d.getString(d.getColumnIndex("lname"));
         if((user.equals(user_temp)&&(password.equals(password_temp)))){
             b=true
         }                 
         d.moveToNext();
    }
    if (b) {
          setContentView(R.layout.login_succesful);}
    else{
         setContentView(R.layout.login_failed);                
    }
    ....

    Ciao.
    Ultima modifica di schumy2000; 24-07-2014 a 14:50
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  4. #4
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    codice:
     for (Integer j = 0; j < count; j++) {            
            user_temp=d.getString(d.getColumnIndex("fname"));
            password_temp=d.getString(d.getColumnIndex("lname"));
            if((user.equals(user_temp)&&(password.equals(password_temp)))){
                setContentView(R.layout.login_succesful);
            }
            else{
                setContentView(R.layout.login_failed);                
            }            
            d.moveToNext();
                
     }
    E' ovvio perché lui cicla fino alla fine.
    Non conviene inserire un booleano per fare questo?
    Non conosco bene java per Android ma questo dovrebbe funzionare:

    codice:
    ...
    boolean b = false;
    for (int j = 0; j < count; j++) {            
         user_temp=d.getString(d.getColumnIndex("fname"));
         password_temp=d.getString(d.getColumnIndex("lname"));
         if((user.equals(user_temp)&&(password.equals(password_temp)))){
             b=true
         }                 
         d.moveToNext();
    }
    if (b) {
          setContentView(R.layout.login_succesful);}
    else{
         setContentView(R.layout.login_failed);                
    }
    ....

    Ciao.
    Grazie non so come non ci sono arrivato prima questa soluzione è perfetta.
    Ancora grazie

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.