Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775

    Controllare chi ha fatto il login



    io utilizzo questo semplice codice (in sostanza un'if) per essettuare un login nella mia applicazione.
    codice:
    try {
                    con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/pizzeria","root","");
                    con.setAutoCommit(false);
    
                    con.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
    
                    String databaseUsername = "";
                    String databasePassword = "";
    
                    // Check Username and Password
                    String name = txtName.getText();
                    String password = txtPass.getText();
    
                    Statement dati = con.createStatement();
                    ResultSet results = dati.executeQuery("SELECT * FROM ditta WHERE Username='" + name + "' && Pass='" + password+ "'");
    
    
                            // Controllo tutti gli Username e tutte le Password
                    while (results.next()) {
                        databaseUsername = results.getString("Username");
                        databasePassword = results.getString("Pass");
                    }
    
                    if (name.equals(databaseUsername) && password.equals(databasePassword)) {
                        JOptionPane.showMessageDialog(null,"Login avvenuto con successo.");
                        
                        //apro la nuova finestra
    
                        HomePizzeria f = new HomePizzeria();
                        f.setTitle("Pizzeria");
                        f.setSize(880,420);
                        f.setResizable(false);
                        f.setVisible(true);
                        f.setLocation(50,50);
                        this.setVisible(false);
                    } else {
                        JOptionPane.showMessageDialog(null,"Login non riuscito.\nErrore nell'inserimento dei dati.");
                    }
               
               } catch(Exception e) {
                JOptionPane.showMessageDialog(null,"Errore.");
            }
    Quando effettuo il login mi si apre un'altra finestra.

    Siccome ho un database con una decina di utenti:
    come posso sapere quale fra i 10 utenti ha effettuato il login?

    Perchè nella nuova finestra che si apre dopo il login vorrei sisualizzare il rispettivo Username ed altre infromazioni riguardo l'utente che si è loggato.. come faccio a sapere chi è l'utente loggato?

    Dovrei per caso non utilizzare un if ma un "meccanismo" diverso, o che cosa?

    Grazie in anticipo!

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    I tuoi problemi mi sembrano più relativi alla programmazione che al database, se si continua su questo tipo di domande devo spostare

    Per venire alla tua domanda (visto che ormai sono qui...): cosa vuoi visualizzare ? solo lo username ? ce l'hai, l'hai appena usato nella tua query....

    Vuoi visualizzare altre informazioni relative all'utente ? immagino tu abbia un'altra tabella che contiene queste informazioni, in cui username è chiave univoca (immagino tu non abbia due username uguali...) quindi farai un'altra query per trovare i campi che ti interessano

    Qualcosa del tipo "select nome, cognome, telefono from utenti where username = databaseusername"

  3. #3
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    Il problema è che io eseguo il Login in una finestra (in una classe quindi), e devo visualizzare i dati di chi ha effettuato l'accesso in un'altra finestra (classe)..
    Quindi non nella stessa, altrimenti avrei già tutto..
    Ma la nuova finestra che si aprirà dopo aver fatto il login, deve sapere chi è "acceduto", in modo da visualizzare i suoi dati..

    Questo non capisco come si possa fare

  4. #4
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Originariamente inviato da Buzzz
    Il problema è che io eseguo il Login in una finestra (in una classe quindi), e devo visualizzare i dati di chi ha effettuato l'accesso in un'altra finestra (classe)..
    Quindi non nella stessa, altrimenti avrei già tutto..
    Ma la nuova finestra che si aprirà dopo aver fatto il login, deve sapere chi è "acceduto", in modo da visualizzare i suoi dati..

    Questo non capisco come si possa fare
    Appunto, non è un problema di database; dal punto di vista del database la cosa si risolve con due query banalissime; passare le informazioni da una classe all'altra è un problema di programmazione...

    Sposto in Programmazione - Java

  5. #5
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    Quindi in sostanza dovrei passare il databaseUsername nell'altra classe..

    Qualcuno sa aiutarmi?

  6. #6
    Non serve che passi il database. Basta che nell'altra classe mantieni una variabile d'istanza che contiene le informazioni che ti servono. Se ti basta lo username puoi tenere direttamente una stringa, altrimenti ti conviene incapsulare tutte le informazioni in un oggetto (ad es. ti puoi creare una classe User con tutte le informazioni necessarie).
    Quindi nel costruttore della classe prendi come argomento un'istanza di tale oggetto e lo memorizzi nella variabile d'istanza.

    Ad esempio:

    codice:
    class OtherJFrame {
      String mUsername;
      
      OtherJFrame(String username) {
        mUsername = username;
      }
    }
    e quando la crei le passi tutte le informazioni necessarie:

    codice:
    OtherJFrame f = new OtherJFrame("pippo");
    ***Ciao***

  7. #7
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    Forse ho capito..

    Io ho creato questa classe istanzaUsername
    codice:
    package pizzeria;
    
    class istanzaUsername {
        String utente;
      
        istanzaUsername(String databaseUsername) {
            utente = databaseUsername;
        }
    }
    sulla classe Login ho creato la classe in questo modo:
    codice:
    istanzaUsername iUser = new istanzaUsername(databaseUsername);
    dove databaseUsername è l'user salvato nel database.

    Ora nella classe pizzeria (ovvero dove devo visualizzare l'user dell'utente che si è appena loggato), come faccio a richiamare la classe istanzaUsername e quindi la variabile utente?

    Perchè se creo anche qui la classe istanzaUsername, mi dice (ovviamente) che devo passare un valore String.. ma non devo pasare nulla, anzi, devo "prendere"..

  8. #8
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    Niente, ci sono riuscito!!
    In effetti mi bastava inviare la Stringa alla classe in cui dovevo visualizzare il nome, semplicemente

  9. #9
    Ok, perfetto. Esatto, se utilizzi solo la stringa dello username la invii alla classe che la deve visualizzare. Se dovessi utilizzare più informazioni (nome, cognome, ...) puoi passare tutte le varie stringhe separatamente direttamente alla classe che le deve mostrare, oppure le inglobi in una classe, di cui passi un'istanza alla classe che le deve mostrare (cioè invece che passare la stringa databaseUsername, passi un'istanza di una classe User che hai già popolato con tutte le informazioni).

    ***Ciao***

  10. #10
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    Riguardo sempre questo problema, riusciresti a dare un occhio qui?
    http://forum.html.it/forum/showthrea...6#post13872786

    Si tratta di mysql questo mio ultimo problema,
    dove avendo il nomeutente (che mi sono appena passato) devo "trovarlo" nella tabella (so che esiste, ma ora devo trovarlo), in modo da poter stampare tutta la riga corrispondente..

    Non è proprio un passaggio di tutte le informazioni, come se dovessi passarle come istanze, ma proprio una ricerca e stampa di una riga avendo il nomeutente.

    Comunque dovrebbe essere spiegato tutto bene nell'altra discussione, se riuscissi a dare un occhio veloce mi faresti un grandissimo favore

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.