Autore Topic: evitare "null" nell'iscrizione!  (Letto 929 volte)

Offline paul78

  • Utente normale
  • ***
  • Post: 353
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
evitare "null" nell'iscrizione!
« il: 12 Marzo 2016, 10:42:22 CET »
0
Ciao a tutti!

Stò avendo problemi nella mia APP. con un dispettoso!

Nell'iscrizione e descrizione dell'app. nonostante ho messo tutte le tipologie di controllo nell'edittext riesce sempre ad iscriversi!

per controllare l'edittext scrivo questo:

Codice (Java): [Seleziona]
if(e_nome.getText().toString().trim().length() == 0 || nome.matches("")) {
     e_nome.setError("Insert Your Name");
}

riesce anche nel controllo dell'email!
 per il controllo scrivo questo:

Codice (Java): [Seleziona]
private boolean isValidEmail(String email) {
                String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
                                + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

                Pattern pattern = Pattern.compile(EMAIL_PATTERN);
                Matcher matcher = pattern.matcher(email);
                return matcher.matches();
        }

if (!isValidEmail(email)) {
                                        e_email.setError("Invalid Email");
                                }
nonostante questi controlli riesce sempre ad iscriversi!!

Come posso evitare tutto questo!


tutti possiamo programmare...basta volerlo!!!

Offline zezzo

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +3
    • Mostra profilo
Re:evitare "null" nell'iscrizione!
« Risposta #1 il: 12 Marzo 2016, 12:18:57 CET »
0
per il nome prova isEmpty che verifica anche il null

static boolean    isEmpty(CharSequence str)
Returns true if the string is null or 0-length.

qui la doc. http://developer.android.com/reference/android/text/TextUtils.html




Offline paul78

  • Utente normale
  • ***
  • Post: 353
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:evitare "null" nell'iscrizione!
« Risposta #2 il: 12 Marzo 2016, 12:29:21 CET »
0
già fatto!

ora provo questo:

if ( nome == "")

l'unico modo che no ho usato...

ti farò sapere
tutti possiamo programmare...basta volerlo!!!

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:evitare "null" nell'iscrizione!
« Risposta #3 il: 12 Marzo 2016, 20:05:38 CET »
0
già fatto!

ora provo questo:

if ( nome == "")

l'unico modo che no ho usato...

ti farò sapere
Non funzionerà, in Java l'operatore == è un confronto tra oggetti non tra il contenuto di oggetti.

Inviato dal mio Nexus 5 utilizzando Tapatalk

adb logcat | tee /tmp/logcat | grep TAG

Offline paul78

  • Utente normale
  • ***
  • Post: 353
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:evitare "null" nell'iscrizione!
« Risposta #4 il: 12 Marzo 2016, 20:24:03 CET »
0
nome è una stringa!
tutti possiamo programmare...basta volerlo!!!

Offline dev91

  • Utente junior
  • **
  • Post: 51
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Note 4
Re:evitare "null" nell'iscrizione!
« Risposta #5 il: 12 Marzo 2016, 20:28:04 CET »
0
nome è una stringa!
Si, ma facendo stringa1 == stringa2, vai a confrontare se sono gli stessi oggetti e non lo sono. Dovresti usare il metodo equals. Strano che isEmpty non ti funziona, io mai avuti problemi.

Offline paul78

  • Utente normale
  • ***
  • Post: 353
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:evitare "null" nell'iscrizione!
« Risposta #6 il: 12 Marzo 2016, 20:50:46 CET »
0
Ho inserito anche l'equals...
Niente...c'è sempre questa persona che riesce a iscriversi senza scrivere nulla!
tutti possiamo programmare...basta volerlo!!!

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
  • Respect: +56
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:evitare "null" nell'iscrizione!
« Risposta #7 il: 12 Marzo 2016, 23:09:28 CET »
0
Sempre usato getText().toString().getLenght() in aggiunta a match("") e mai avito problemi

Offline paul78

  • Utente normale
  • ***
  • Post: 353
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:evitare "null" nell'iscrizione!
« Risposta #8 il: 12 Marzo 2016, 23:15:13 CET »
0
Ragazzi ho utilizzato tutte le tipologie di controllo!

in poche parole questa persona non solo si iscrive nel register ma a dispetto anche nei messaggi e nei commenti!

si vede che è una cosa fatta a posta!

sicuramente è un hacker!

Se cambiassi password al mysql?

Non posso stare a controllare ogni 30 minuti la mia app. per colpa di questa persona!
tutti possiamo programmare...basta volerlo!!!

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:evitare "null" nell'iscrizione!
« Risposta #9 il: 12 Marzo 2016, 23:42:26 CET »
0
Se hai scritto un app che si connette ad un server SQL direttamente e magari hai messo in chiaro la password nel tuo codice devi rivedere tutto il codice riscrivendo tutto in modo molto più sicuro.

Inviato dal mio Nexus 5 utilizzando Tapatalk

adb logcat | tee /tmp/logcat | grep TAG

Offline paul78

  • Utente normale
  • ***
  • Post: 353
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:evitare "null" nell'iscrizione!
« Risposta #10 il: 13 Marzo 2016, 09:04:52 CET »
0
Non ho messo nessuna password al mio codice..
La password sta scritta solo nel PHP che viene inserito nella gestione dati.
In Java inserisco solo il link di connessione al server
tutti possiamo programmare...basta volerlo!!!

Offline zezzo

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +3
    • Mostra profilo
Re:evitare "null" nell'iscrizione!
« Risposta #11 il: 13 Marzo 2016, 10:27:15 CET »
0
Ciao Paul, per poterti aiutare dovresti farci capire se il codice e i vari suggerimenti ricevuti non funzionano anche quando tu testi il tutto, o in realtà funzionano in fase di test ma continui ad avere quell'utente "null".
Sono due cose diverse, se i test ti funzionano, smettiamo di darti suggerimenti per java, l'utente in questione potrebbe registrarsi senza usare l'app, quindi saltando tutti i controlli di validazione,  ma facendo una semplice richiesta http (curl, postman, ecc ecc) al tuo server.

Per quanto rigurda la validazione del nome e della mail, hai implementato le stesse regole anche lato server? E' la validazione lato server che conta maggiormente visto che è l'ultima ad essere applicata prima di salvare il record nel db, il problema potrebbe essere in questo punto prima ancora della password mysql. Magari il furbetto fa una richiesta al tuo endpoint www.mioserver.com/user/register passando direttamente i parametri username e email, se non c' una validazione anche qui i dati vengono salvati così come sono ricevuti.


Offline paul78

  • Utente normale
  • ***
  • Post: 353
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:evitare "null" nell'iscrizione!
« Risposta #12 il: 13 Marzo 2016, 10:49:23 CET »
0
ciao! mi sa che il furbetto fa la richista al mio endpoint...

al lato server in php per registrare l'utente scrivo questo:

Codice (Java): [Seleziona]
<?php
    $con=mysqli_connect("localhost","username","password","nome_db");
   
    $nome = $_POST["nome"];
    $email = $_POST["email"];
    $username = $_POST["username"];
    $password = $_POST["password"];
   
    $statement = mysqli_prepare($con, "INSERT INTO register(nome, email, username, password) VALUES (?, ?, ?, ?)");
    mysqli_stmt_bind_param($statement, "ssss", $nome, $email, $username, $password);
    mysqli_stmt_execute($statement);
   
    mysqli_stmt_close($statement);
   
    mysqli_close($con);
?>

Dimmi se è giusto o c'è da modificare qualcosa!

Il furbetto anche stanotte si è fatto vivo!  :-(
tutti possiamo programmare...basta volerlo!!!

Offline zezzo

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +3
    • Mostra profilo
Re:evitare "null" nell'iscrizione!
« Risposta #13 il: 13 Marzo 2016, 10:55:51 CET »
0
Così com'è salva quello che riceve senza validazione, dovresti applicare isempty di php al nome e alla mail come minimo
http://php.net/manual/en/function.empty.php

poi per la mail aggiungi anche http://php.net/manual/en/filter.examples.validation.php



Offline paul78

  • Utente normale
  • ***
  • Post: 353
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:evitare \"null\" nell\'iscrizione!
« Risposta #14 il: 13 Marzo 2016, 11:27:09 CET »
0
Se mi potresti dire se così viene impostata bene:

Codice (Java): [Seleziona]
<?php
    $con=mysqli_connect("localhost","username","password","nome_db");
   
    $nome = $_POST["nome"];
    $email = $_POST["email"];
    $username = $_POST["username"];
    $password = $_POST["password"];

    $var  =  "" ;
   
    $statement = mysqli_prepare($con, "INSERT INTO register(nome, email, username, password) VALUES (?, ?, ?, ?)");
    mysqli_stmt_bind_param($statement, "ssss", $nome, $email, $username, $password);
   
    if (empty ( $var )) {
         echo  '$var è vuoto, o non impostato a tutti' ;
    } else {
    mysqli_stmt_execute($statement);
   
    mysqli_stmt_close($statement);
   
    mysqli_close($con);
    }
?>

Post unito: 13 Marzo 2016, 11:33:10 CET
ho sbagliato al codice di prima  :-P
Codice (Java): [Seleziona]
<?php
    $con=mysqli_connect("localhost","username","password","nome_db");
   
    $nome = $_POST["nome"];
    $email = $_POST["email"];
    $username = $_POST["username"];
    $password = $_POST["password"];

    $var  =  "" ;
   
    $statement = mysqli_prepare($con, "INSERT INTO register(nome, email, username, password) VALUES (?, ?, ?, ?)");
    mysqli_stmt_bind_param($statement, "ssss", $nome, $email, $username, $password);
   
    if (empty ( $nome ="" || $email = "" || $username= "" || $password="")) {
         echo  'riempire tutti i campi' ;
    } else {
    mysqli_stmt_execute($statement);
   
    mysqli_stmt_close($statement);
   
    mysqli_close($con);
    }
?>

dimmi se così è impostato bene!
« Ultima modifica: 13 Marzo 2016, 11:33:10 CET da paul78, Reason: Merged DoublePost »
tutti possiamo programmare...basta volerlo!!!