Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    45

    Problema controllo form caratteri speciali

    Buongiorno,

    dopo aver cercato di risolvere questo problema per ore chiedo cortesemente se qualcuno può aiutarmi.

    Ho un form per l'inserimento di annunci con campi titolo, autore, casa editrice ecc
    Dovrei fare un controllo per non fare inserire caratteri speciali da parte degli utenti ma solo caratteri alfanumerici.
    Es. in titolo l'immissione consentita dovrà essere es: divina commedia oppure html 5.
    Ho provato con eregi ma non riesco a consentire l'immissione di più parole con gli spazi in mezzo.

    Il codice che ho provato a usare:

    $titolo1 =eregi("[a-zA-Z0-9]+",$titolo);

    if ( $titolo1 == TRUE ) {
    //immissione corretta
    else//immissione non corretta errore

    Grazie per le risposte

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453

    Re: Problema controllo form caratteri speciali

    Originariamente inviato da dp88
    Buongiorno,

    dopo aver cercato di risolvere questo problema per ore chiedo cortesemente se qualcuno può aiutarmi.

    Ho un form per l'inserimento di annunci con campi titolo, autore, casa editrice ecc
    Dovrei fare un controllo per non fare inserire caratteri speciali da parte degli utenti ma solo caratteri alfanumerici.
    Es. in titolo l'immissione consentita dovrà essere es: divina commedia oppure html 5.
    Ho provato con eregi ma non riesco a consentire l'immissione di più parole con gli spazi in mezzo.

    Il codice che ho provato a usare:

    $titolo1 =eregi("[a-zA-Z0-9]+",$titolo);

    if ( $titolo1 == TRUE ) {
    //immissione corretta
    else//immissione non corretta errore

    Grazie per le risposte
    Semplice controllino tramite espressione regolare:

    Codice PHP:
    if(!preg_match('/[^A-Za-z0-9\\s]+/',$titolo)) echo 'Titolo idoneo'

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    45
    Grazie mille funziona perfettamente!!

    Posso farti alcune domande per capire meglio?
    eregi e preg_match non hanno la stessa funzione? differenze?

    !preg_match('/[^A-Za-z0-9\s]+/

    due negazioni ! e ^ non fanno un'affermazione?
    il simbolo/ all'inizio e alla fine che significato hanno? inizio e fine stringa?

    Grazie mille

    Sono alle prime armi con le regular expression.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    eregi è deprecato e sarà rimosso nel php6 essendo preg più veloce e con una sintassi compatibile col perl.


    Per quanto riguarda l'espressione regolare in poche parole quella condizione significa ciò

    Se nella stringa non sono presenti caratteri esclusi quelli alfanumerici o spazi ritorna un boolean falso, in pratica ^ li esclude e ! controlla la condizione sia falsa ciò vuol dire che non ci sono altri caratteri.

    I segni all'inizio e alla fine sono per delimitare il pattern da analizzare

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    45
    ok perfetto capito ora.
    Grazie mille.

    Un'altra domanda se non vado troppo fuori dal contesto.

    Ho un form in cui l'utente deve inserire il prezzo.

    Io per un controllo che sia un numero ho usato la funzione is_numeric ma questa nel db mi salva i valori arrotondati. Es se immette 21.5 nel db avrò 22

    Per consentire l'immissione di caratteri decimali uso is_float? Grazie mille

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da dp88
    ok perfetto capito ora.
    Grazie mille.

    Un'altra domanda se non vado troppo fuori dal contesto.

    Ho un form in cui l'utente deve inserire il prezzo.

    Io per un controllo che sia un numero ho usato la funzione is_numeric ma questa nel db mi salva i valori arrotondati. Es se immette 21.5 nel db avrò 22

    Per consentire l'immissione di caratteri decimali uso is_float? Grazie mille
    Si, o is_float() o is_double() sono alias, comunque non dipende dalla funzione di controllo l'inserimento è ma bensì dal tipo del campo nel database se non lo modifichi ulteriormente, ad esempio è probabile che tu abbia messo int come tipo ma invece dovevi mettere float anche nel db perché is_numeric controlla solamente se numerico infatti non mi tornava all'inizio la tua richiesta

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    45
    Grazie mille ho controllato in effetti nel db avevo impostato come int.

    Ora mettendolo float la funzione is_numeric funziona perfettamente.

    Grazie mille!!

    Buona giornata

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.