Visualizzazione risultati 1 fino 5 di 5

Discussione: Validare nome e cognome

  1. #1
    unisatripboard non è connesso Neofita
    Data registrazione
    09-12-2015
    Messaggi
    17

    Predefinito Validare nome e cognome

    Salve ragazzi,
    ho una form in html con i campi nome, cognome, email ecc. che vengono inviati lato server ad una pagina php. Ora però vorrei validare il nome e il cognome in modo che l'utente non può inserire tutti apostrofi '''''' oppure un nome con tutte letteri uguali "aaaaaa", oppure un nome di questo tipo "muahhuHU". Ho visto che c'è la funzione preg_match() ma comunque non posso controllare tutte le opzioni che ho elencato. Potete aiutarmi?

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Qualunque assunzione si possa fare su un nome cognome è sbagliata: https://www.kalzumeus.com/2010/06/17...e-about-names/.

    Ciò detto, se intendi persistere:
    l'utente non può inserire [...] un nome con tutte lettere uguali
    Codice PHP:
    /** Tells whether all the character in a string are equal. */
    function every_character_equal($string) {
    // If string is empty, property is trivially satisfied
    if (empty($string)) {
    return
    true;
    }

    // Checks every character against the first one
    $c = $string[0];
    for (
    $i = 1; $i < strlen($string); $i++) {
    // Returns at first mismatch
    if ($string[$i] != $c) {
    return
    false;
    }
    }

    // Every character was equal
    return true;
    }
    Questa è l'idea. Probabilmente esistono implementazioni più efficienti.

    l'utente non può inserire tutti apostrofi
    È un caso particolare del precedente.

    oppure un nome di questo tipo "muahhuHU"
    È un'affermazione troppo generica per tirarne fuori un algoritmo.

  3. #3
    unisatripboard non è connesso Neofita
    Data registrazione
    09-12-2015
    Messaggi
    17

    Predefinito

    @mzanella ti ringrazio innanzitutto per la risposta.
    Ovviamente intendevo una cosa tipo facebook che se inserisci un nome strano te lo rifiuta.

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Facebook tira ad indovinare, e spesso non ci azzecca (sia rifiutando nomi leciti che accettandone di farlocchi).

    L'algoritmo che usano è fondamentalmente un misto tra una complessa euristica e qualche tecnica di apprendimento automatico (che comunque non funziona ), in ogni caso implementare qualcosa del genere è un lavoro non da poco.

    Qualcosa di più semplice si può fare con poco sforzo, ad esempio controllare che ci siano solo caratteri alfabetici con ctype_alpha, oppure verificare se ci sono ripetizioni contigue di un carattere:
    Codice PHP:
    /** Returns true whether there is at least one characters repeated at least $threshold times, false otherwise */
    function has_repeated_chars($string, $threshold = 3) {
    function
    over_threshold($frequency) {
    global
    $threshold;
    return
    $frequency >= $threshold;
    }

    $chars = explode($string);
    $frequencies = array_count_values($chars);
    $repeated_chars = array_filter($frquencies, over_threshold);
    return !empty(
    $repeated_chars);
    }
    Naturalmente sono tutte assunzioni, e per la Legge di Murphy, appena avrai finito di implementare il controllo, sul tuo sito si iscriverà qualcuno di nome "Dong Yuu-un", scombinando tutto.

  5. #5
    unisatripboard non è connesso Neofita
    Data registrazione
    09-12-2015
    Messaggi
    17

    Predefinito

    Ti ringrazio mzanella.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •