Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Regexp e controllo tipo carattere

    Ciao ragazzi, vorrei farvi una domanda: quali sono tutti i possibili simboli e/o caratteri alfanumerici che un utente potrebbe inserire in un campo input di un form?

    Ad esempio, eliminando quelli più comuni (asterisco *, percentuale %, punto ., etc.) potrebbero essere inseriti simboli tipo la tilde ~ (ALT+126), giusto?

    Mi domandavo com'è possibile ottenere un quadro complessivo di tutti i simboli/caratteri utilizzabili come input(form) a prescindere da chi riceverà i dati, tipo file di testo, database... quindi non solo dei caratteri che potrebbero dare problemi nelle query, e controllarli con le espressioni regolari.

    Per il controllo con le regexp sto cercando di documentarmi, ma relativamente ai possibili caratteri utilizzabili non riesco a trovare nessuna risposta decenete.

    Scusatemi se non sono stato molto chiaro e, soprattutto se non ho indovinato il forum giusto a cui chiedere...

    Per il momento sto solo provando con la funzione ereg() cercando di capire il funzionamento dei meta-caratteri e la costruzione delle varie classi.

    c'è sempre stato un aspetto pissicologico (o sociologico) del forum che non ho mai capito:
    cosa spinge un utonto - che per diverso tempo ha agito "normalmente" sui forum tennici -
    a comportarsi come un troll su OT
    bhò     (saibal)

  2. #2
    Ma a te di preciso a cosa serve saperlo?
    Non vuoi che vengano inseriti, vuoi che vengano trasformati o cosa? Se ti spieghi meglio forse ti possiamo dare una mano e trovare una soluzione migliore delle regex!

    Per esempio c'è la funzione html_encode() o simile (ora non ricordo con precisione) che trasforma tutti i caratteri nel corrispondnte html e quindi evita anche i problem di sqlinjection.

  3. #3
    Non è un problema legato "esclusivamente" alle regexp, si tratta più che altro di voler conoscere tutti i possibili caratteri che un utente potrebbe usare (distrattamente o intenzionalmente) nel compilare un form...
    c'è sempre stato un aspetto pissicologico (o sociologico) del forum che non ho mai capito:
    cosa spinge un utonto - che per diverso tempo ha agito "normalmente" sui forum tennici -
    a comportarsi come un troll su OT
    bhò     (saibal)

  4. #4
    Si ma perchè? Se dici lo scopo è più facile trovare una soluzione mirata!

    Se è solo per "curiosità" è un conto ma se magari non vuoi farli inserire proprio ne è un altro!

  5. #5
    Mi rendo conto che la domanda può sembrare un po' strana, ma non c'è uno scopo preciso (come dicevo nel primo post).

    Mi chiedevo solo quali caratteri uno potrebbe usare nel compilare un form, "fatta eccezione per tutti quelli più comuni".

    [edit] ...per quelli più comuni intendo
    codice:
    \ | ! " £ $ % & / ( ) = ? ^ * - + . [ ] { } § ° # ç @
    c'è sempre stato un aspetto pissicologico (o sociologico) del forum che non ho mai capito:
    cosa spinge un utonto - che per diverso tempo ha agito "normalmente" sui forum tennici -
    a comportarsi come un troll su OT
    bhò     (saibal)

  6. #6
    Allora cerca una tabella ascii in rete e vedi quali sono gli altri caratteri.

  7. #7
    Ciao mircov, la tabella l'ho trovata e va bene per quello che volevo sapere...

    Adesso però ho questo problema: come faccio ad indicare che non cidevono essere spazi vuoti ripetuti "solo" all'inizio e alla fine del testo inserito, in questa espressione:
    codice:
    $regexp = ereg("^[^0-9\~]+$", $check);
    in pratica mi lascia passare tutti i caratteri di punteggiatura tranne \ e " (virgolette doppie) e poi, ovviamente le lettere, escludendo tutti i numeri e la tilde.

    Come posso modificare questa espressione controllando che non ci siano spazi vuoti all'inizio e alla fine del testo?

    [ps]inizialmente ho provato con trim() prima ancora che i dati arrivassero a ereg() e funziona, ma vorrei sapere se si può fare anche solo con ereg()...

    c'è sempre stato un aspetto pissicologico (o sociologico) del forum che non ho mai capito:
    cosa spinge un utonto - che per diverso tempo ha agito "normalmente" sui forum tennici -
    a comportarsi come un troll su OT
    bhò     (saibal)

  8. #8
    ereg e' lento, eregi di piu'

    preg e' piu' veloce e piu' potente ... passa alle pregs , ma comunque trim e' dedicata e molto piu' veloce di preg o reg che sia ...

    a che ti serve questo controllo ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    ciao andr3a, grazie del suggerimento! credo che continuerò ad usare trim(). Il controllo mi serve per verificare esattamente il tipo di dati passati per l'inserimento in un file di testo che poi andrò a confrontare...

    Che differenza c'è tra le funzioni per le espressioni regolari Perl compatibili e quelle POSIX estesa? A cosa è dovuta la lentezza delle varie ereg() eregi() split() ecc...

    Ho letto dal manuale:
    codice:
    Suggerimento: Poichè utilizza espressioni regolari con
    sintassi compatibile con Perl, preg_split(), è spesso una alternativa
    più veloce a split(). Se non si ha necessità delle capacità
    delle espressioni regolari, è più veloce l'utilizzo di explode(),
    che non richiede l'overhead del motore delle espressioni regolari.
    Ma ai fini pratici "in quali situazioni si nota questa differenza di velocità (d'esecuzione)" ?

    c'è sempre stato un aspetto pissicologico (o sociologico) del forum che non ho mai capito:
    cosa spinge un utonto - che per diverso tempo ha agito "normalmente" sui forum tennici -
    a comportarsi come un troll su OT
    bhò     (saibal)

  10. #10
    [supersaibal]Originariamente inviato da Rhamirez
    Ma ai fini pratici "in quali situazioni si nota questa differenza di velocità (d'esecuzione)" ?
    [/supersaibal]
    in tutte ?
    considera che in un sito raramente utilizzi un solo eregi o una sola preg ... le preg, una volta messo in moto il motore, ti permettono di fare di tutto e alla meta' del tempo di esecuzione di ereg o eregi ... un qualunque parser , bbCode o altro se fosse stato in eregi avrebbe mandato in attesa una valanga di persone nella rete


    quindi, serve un controllo che richiede un' espressione regolare ?
    allora serve una preg
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.