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

    [java + mysql] data del server

    Il mio programma prevede la scadenza della password.
    C'è infatti un'apposita tabella utenti con apposito campo.
    Io avevo realizzato un controllo basandomi sulla data del sistema host, ma questo è chiaramente inefficiente.
    Chiunque potrebbe, semplicemente cambiando la propria data di sistema, accedere in eterno.
    Sul server gira un istanza mysql e il programma è sostanzialmente un interfaccia grafica al database.
    Come posso prendere la data del server e non quella di sistema?
    Grazie.

  2. #2
    Beh ..
    Se la tua applicazione Java risiede sul server, dove comunica con MySQL, basta che chiami System.currentTimeMillis() e la data presa in considerazione sarà quella del server, non quella del client dell'utente..
    O forse ho capito male il problema .. .

  3. #3
    Forse ho sbagliato sessione.
    La mia applicazione non risiede sul server ma sul client che si connette al server.
    Diciamo che una soluzione potrebbe essere

    ResultSet rsdate=stmt.executeQuery("SELECT CURRENT_DATE"); java.sql.Date login = rsdate.getDate("CURRENT_DATE");
    però la seconda riga è sbagliata. Forse perché CURRENT_DATE non ritorna un campo date (ma ditemi se è possibile?).
    Avete altre idee?
    Naturalmente potrei convertire il campo se sapessi in che cavolo di formato sia.

  4. #4
    Correggo Current_date ritorna un date e sulla riga in questione (la seconda) mi da java nullpointer exception.

  5. #5
    Dovrei avercela fatta.

    Statement stmt = (Statement) this.connMySQL.createStatement(ResultSet.TYPE_SCRO LL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    ResultSet rsdate=stmt.executeQuery("SELECT CURRENT_DATE");
    rsdate.first();
    java.sql.Date login = rsdate.getDate("CURRENT_DATE");
    rsdate.close();
    ResultSet rs = stmt.executeQuery("SELECT *" + "FROM utenti \n" + "WHERE IDUTENTE = '" + this.strUserMySQL + "' ");
    long dataMilli = System.currentTimeMillis();
    java.sql.Date date = new java.sql.Date(dataMilli);
    rs.first();
    rs.updateDate(4, login);
    rs.updateRow();
    rs.close();
    stmt.close();

    Naturalmente ricordarsi di fare dopo anche this.connMySQL.commit();

    Rimango perplesso coumnque sulla necessità delle rige
    rs.first();
    rs.updateRow();

    senza le quali non c'è verso di fare l'update, nonstante, ovviamente, tutti i record contengano una sola riga e nonostante il commit.

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.