Visualizzazione dei risultati da 1 a 7 su 7

Discussione: controllo su form

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    216

    controllo su form

    Salve, ho un form in cui c'è un campo textarea; devo fare in modo da
    controllare che l'utente non inserisca numeri di telefono.
    Potete aiutarmi? Grazie

  2. #2
    Mi pare si debbano usare le regex...

    con [^0-9] escludi i numeri, quindi nella textarea verrà inviato tutto il testo esclusi i numeri...
    con [0-9] associato a preg_match puoi controllare che nn ci siano numeri, se ci sono ti da errore...

    Non sono bravo in regex, ma secndo alcuni esempi su internet...

    [CODE]
    if(preg_match("[0-9]", $textarea)) {
    print "Viettato inserire numeri";
    } else {
    print "esatto..";
    }
    [CODE]

    Dovrebbe essere un esempio giusto, scusa per eventuali miei errori

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    216
    Però essendo un form di inserimento annunci, se un utente inserisce per
    esempio un annuncio di vendita di una macchina, inserire numeri che riguardano
    cilindrata, velocità, ecc. è consentito; devo escludere solo i numeri di telefono.

    Hai qualche idea?

  4. #4
    Eh... credo sia impossibile... Perché se vuoi escludere i numeri ok ... però come fa a sapere lo script se quello è un numero di telefono... Puoi provare a controllare che nella textarea non ci siano numeri del tipo "349,340,328,320" però è una rottura metterli tutti......

  5. #5
    Prima di scrivere una regexp è sempre bene:
    1. conoscerne la sintassi;
    2. prevedere ogni situazione anomala che può generare falsi positivi.
    Per il punto 1, dico che è inutile scrivere un post con una risposta che è sintatticamente e concettualmente sbagliata.
    Per il punto 2, invece, devi valutare di diverse possibilità.... e sin da subito ti dico: fatta la regexp, trovato l'inganno.
    Poi ti spiego perché.

    Il numero di telefono può essere innanzi tutto fisso o mobile.
    Il fisso ha sicuramente un prefisso di 2, 3 o 4 cifre ed inizia per 0 (zero), ed il numero potrebbe essere composto dai 5 ai 9 numeri.
    Quindi (in soldoni) dovresti prevedere il matching di un numero, in un testo, composto di 13 numeri consecutivi.
    Discorso simile per i cellulari, dove però sai che il numero sarà composto sempre di 10 cifre che iniziano con il 3.
    Potresti iniziare quindi a comporre la tua regexp, pensando proprio al minimo delle possibilità come segue:
    Codice PHP:
    $regexp "#[0-9]{7, 14}#";

    if (
    preg_match_all($regexp$textarea)) {
       echo 
    "Non è possibile inserire numeri telefonici";
    } else {
       echo 
    "Non hai inserito numeri telefonici";

    Con questo semplice pattern vai a controllare se nella stringa passata ci sono sequenza numeriche con un numero di cifre compreso tra 7 e 14.
    Il pattern lo puoi complicare con varie possibilità, che vanno tutte a rispondere alle valutazioni di cui ho scritto all'inizio del post.

    Quale è l'inganno di cui ti parlavo, però: se l'utente vuole inserire davvero il proprio numero, nell'annuncio, potrebbe trovare un escamotage che fa saltare il preg_match.
    In questo caso, per esempio, gli basterebbe inserire degli spazi nelle sequenze numeriche, oppure dei punti.
    Prevedere tutte le varie possibilità di combinazione, con una sola espressione regolare, sarà quasi impossibile.
    Con una di questo genere, riuscirai a fare pulizia comunque dei comportamenti errati degli utenti meno smaliziati.... quindi penso di un buon 90% degli utenti di qualsiasi sito!

    Segnalo ad entrambi, infine, un ottimo tutorial su come si compone una Espressione Regolare, presente nel sito PHPro.org. ----> LINK

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    216
    Ho messo un controllo if che verifica se i numeri inseriti
    sono maggiori o uguali a 4 cifre; dovrebbe andare bene.

  7. #7
    Speriamo in bene... Buona fortuna x il sito

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.