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

    Controllo caratteri casella nome

    ciao a tutti,

    sto imparando ad usare i form e il php ma ancora non sono riuscito a capire quale sia il metodo migliore e più semplice per avere un controllo dei caratteri nelle caselle input di testo tipo nome e cognome dove dovrei escludere tutti i numeri e i simboli, c'è qualche funzione PHP che posso usare?

    Il form da cui prendoi dati è il seguente:

    codice:
    <label>Nome*</label> 
    <input type="text" name="nome" required maxlength="12">
    con required risolvo il problema della casella vuota e con maxlength do un valore massimo di 12 ma per i numeri e i simboli avrei bisogno di una mano per il controllo in PHP.

    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Benvenuto.
    Stai mischiando i controlli lato client e quelli lato server.
    A "required" e "maxlength" ci pensa il browser, sono lato client.
    PHP agisce sul server, quindi non ne sa nulla di required e maxlength, quelli sono sul PC di chi naviga.

    I controlli dovrai farli lato client (opzionale perché in realtà servono solo per coodità dell'utente) e lato server (obbligatorio perché è qui che ci si occupa realmente della sicurezza).
    Quindi, nel tuo caso, lato server dovrai ripetere i controlli sui campi vuoti e sulla lunghezza massima, per esempio con strlen().

    Per quanto riguarda i caratteri contenuti nella stringa dovrai usare un'espressione regolare, suggerisco quindi la funzione preg_match().

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Benvenuto.
    Stai mischiando i controlli lato client e quelli lato server.
    A "required" e "maxlength" ci pensa il browser, sono lato client.
    PHP agisce sul server, quindi non ne sa nulla di required e maxlength, quelli sono sul PC di chi naviga.

    I controlli dovrai farli lato client (opzionale perché in realtà servono solo per coodità dell'utente) e lato server (obbligatorio perché è qui che ci si occupa realmente della sicurezza).
    Quindi, nel tuo caso, lato server dovrai ripetere i controlli sui campi vuoti e sulla lunghezza massima, per esempio con strlen().

    Per quanto riguarda i caratteri contenuti nella stringa dovrai usare un'espressione regolare, suggerisco quindi la funzione preg_match().
    grazie del suggerimento,
    per quanto riguarda la preg_match(); non l'ho mai usata, potrebbe andare bene come controllo questo?

    [PHP]
    $nome = $_POST["nome"];
    if (!preg_match("/^[a-zA-Z ]*$/",$nome)) {
    echo "Hai inserito caratteri non validi";
    }
    [PHP]


  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Prova la tua espressione qui: https://regex101.com

    quando la inserisci ti spiega anche cosa vuol dire quello che hai scritto.

  5. #5
    mi dà come errore gli slash / ma ho visto su internet che nella preg_match(); sono obbligatori... sono un po' confuso

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se guardi la casella dove scrivi la regola, gli slash ci sono già

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.