Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    13

    Permettere con preg_match l'utilizzo di caratteri speciali

    Ciao a tutti.
    Sto realizzando una pagina per l'inserimento delle news ed utilizzo dei controlli per validare il testo inserito.
    Non riesco però a far permettere di inserire anche i seguenti caratteri speciali.
    Il controllo utilizzato è il seguente:

    Codice PHP:
    $testo strtolower($_POST['testo']);     
    $testo trim($testo);         
    if (!
    preg_match("/^[A-z0-9àèéìòù,;:-_\!\.\?\(\)\‘\’\“\”\'\" ]+$/"$testo)) {             
    $MSG='<p style="color:#f00;">[b]ATTENZIONE![/b] Presenti caratteri non permessi.</p>';             $errori=$errori+1;               

    Ho goglato parecchio, ma non riesco proprio a risolvere il mio problema.
    Mi potete aiutare?
    Grazie

  2. #2
    Non fai prima ad utilizzare le fantasmagoriche funzioni native PHP quali filter_var() per validare il testo in modo che non crei problemi di sicurezza?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    13
    Grazie fdisotto perla risposta.
    Le ho considerate ed in effetti le utilizzo per la validazione delle email.
    Vorrei capire però come permettere l'inserimento dei caratteri descritti prima con preg_match.
    Potresti aiutarmi?

  4. #4
    Per i caratteri speciali dovresti risolvere sostituendoli con \W.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    13
    Ho messo underscore prima dei caratteri speciali, ma non permette l'inserimento comunque.
    Cosa intendi per \W.?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    13
    Ok
    sembra che ho risolto così:
    /\w+/

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    13
    rettifico

    ho corretto il controllo sul testo seguendo il consiglio di fdisotto ed inserendo quindi le funzioni filter_var

    Se può essere utile ho eseguito i seguenti controlli
    Codice PHP:
    $testo strtolower($_POST['testo']);     
    $testo trim($testo);     
    $testo strip_tags(htmlentities($testo));         
    if(!isset(
    $testo) || empty($testo)){             
    $MSG='<p style="color:#f00;">[b]ATTENZIONE![/b] Campo testo obbligatorio.</p>';             
    $errori=$errori+1;                         
    }         
    else if (!
    filter_var($testoFILTER_SANITIZE_STRING)) {             
    $MSG='<p style="color:#f00;">[b]ATTENZIONE![/b] Presenti caratteri non permessi.</p>';             
    $errori=$errori+1;               

    Se invece qualcuno può indicarmi controlli migliori, sopratutto riguardo la sicurezza, lo rincgrazio già da ora.

    Saluti

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.