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

    [PHP]filtrare dati provenienti da textarea

    ciao a tutti
    ho una textarea dove l' utente inserisce dei brevi messaggi
    questi messaggi vengono salvati in un db myql

    ovviamente prima di essere inseriti vengono controllati e qui mi è sorto un dubbio: voglio far passare solo testo caratteri, spazi, virgole punti, accenti scartando caratteri pericolosi

    ho provato così usando una preg_match:
    Codice PHP:
    $pr "/^[a-zA-Z0-0 ]{3,250}$/";
    preg_match($pr,$messaggio
    il problema è che non riesco a far passare le lettere accentate, le virgole, accenti e gli eventuali return in textarea.

    avevo pensato di risolvere tutto con un bel
    Codice PHP:
    $messaggio trim(strip_tags($messaggio)); 
    e poi eventualmente usare qualche funzione php per il controllo dei caratteri massimi utilizzabili

    ritengo però che una preg_match sia una soluzione più bella e sicura da usare

    cosa mi consigliate? quando dovete filtrare una textarea qual'è il metodo migliore?

    grazie

  2. #2
    Visto che hai un testo con - suppongo - frasi complete in ingresso non puoi restringere troppo i caratteri ammessi, anche il solo fatto di dover accettare l'apostrofo ti costringe comunque a dover ricorrere a qualche strumento di escaping.

    Quindi, se devi inserire il testo nel db, ti consiglio di usare mysql_real_escape_string.
    Se vuoi eliminare gli eventuali tag html usi il gia' citato strip_tags(), se invece i tag li vuoi mantenere ma renderli "innocui" usa htmlentities() quando poi stamperai il testo a video (non serve registrare le entita' codificate nel database, basta farlo quando mandi il testo al browser).

  3. #3
    http://www.php.net/manual/en/book.filter.php



    Non mi piace come approccio
    (condivido quello che ha detto k.b)
    ma .....
    $dodgychars= "#[^0-9a-zA-Z()_\-\.éàùòè ]#";

    echo preg_replace($dodgychars,"-",'òàèè ');
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.