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

    check input degli utenti

    Salve, ho la necessità di controllare i dati che passano gli utenti.. per fare ciò mi avvalgo della seguente dicitura da me scritta

    Codice PHP:
    function esc_string(&$string$iimg FALSE) {
            
        
    $string trim($in_string);
        
    $string addslashes($in_string);
        
    $string htmlentities($in_string);
        if(
    $img == FALSE) {
        
            
    $string nl2br($in_string);
            
        } else {
            
            
    $strng str_replace(" ""-"$string);
            
        }
        
        return 
    $string;


    Praticamente dovrebbe tornare formattate le stringhe che gli si passano e se nel caso non sono titoli di immagini rimpiazzare con
    ogni "enter" premuto.

    QUalcuno avrebbe una funzione che offre un controllo maggiore? xke molte volte questa funzione non mi seve e devo scrivere una stringa un bel po lunghetta. Ecco un esempio.
    Scrivo questo x modificare il nome del file di modo che deve rimuovere ogni sorta di punti e di spazi (mantenendo il . solo x l'estensione)

    Codice PHP:
    str_replace(".""_"str_replace(" ""-", (htmlentities(addslashes(trim($_FILES['imagefile']['name'])))))) 
    solo che cosi facendo mi crea un prob.. mi toglie anche il . dell'estensione.. come posso fare a impedirlo? e qualcuono conosce un codice di controllo + accurato?
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  2. #2
    Scusa eh, ma $in_string e $img, da dove vengono pescati nella funzione?

    Secondo me, poi è concettualmente sbagliato trattare un input testuale ed uno di tipo file nello stesso modo.
    Per come la vedo io, è necessario che per il caricamento di un file da form sia necessario crearsi una routine apposita, e non mischiarla con quello che vai a fare con le stringhe.

    e qualcuono conosce un codice di controllo + accurato?
    Che tipo di dati deve filtrare questa funzione? A cosa ti serve questa funzione? A fare un controllo prima di un inserimento in un DB?
    Se ti serve per quello, alcuni giorni fa ho risposto in un post con una mia funzione che prepara le stringhe per essere inserite nel DB cercando di ovviare i problemi con la compatibilità dei caratteri speciali e facendo un escape un po' più accurato dei caratteri "pericolosi".

    Ti mando il LINK, vedi se può tornarti utile.

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

  3. #3

    Re: check input degli utenti

    Originariamente inviato da Chef89


    solo che cosi facendo mi crea un prob.. mi toglie anche il . dell'estensione.. come posso fare a impedirlo? e qualcuono conosce un codice di controllo + accurato?

    espressioni regolari

  4. #4
    Originariamente inviato da alcio74
    Scusa eh, ma $in_string e $img, da dove vengono pescati nella funzione?

    Secondo me, poi è concettualmente sbagliato trattare un input testuale ed uno di tipo file nello stesso modo.
    Per come la vedo io, è necessario che per il caricamento di un file da form sia necessario crearsi una routine apposita, e non mischiarla con quello che vai a fare con le stringhe.


    Che tipo di dati deve filtrare questa funzione? A cosa ti serve questa funzione? A fare un controllo prima di un inserimento in un DB?
    Se ti serve per quello, alcuni giorni fa ho risposto in un post con una mia funzione che prepara le stringhe per essere inserite nel DB cercando di ovviare i problemi con la compatibilità dei caratteri speciali e facendo un escape un po' più accurato dei caratteri "pericolosi".

    Ti mando il LINK, vedi se può tornarti utile.

    Mi sono accorto ora che avevo postato solo una parte xo cmq grazie al tuo codice suggerito nell'altro post ho sistemato tutto.. cmq si trattava di preparare i dati all'inserimento nel db.. non pensavo fosse impo, ma a quanto pare mi sbagliassi

    ma con quel codice posso anche "sistemare" i nomi delle immagini?.. xke io ho bisogno di modificare i nomi alle immagini ma senza crearne di nuovi. Mi spiego:

    - Io faccio caricare un immagine senza dare la possibilità di rinominarla (foto bla bla bla.jpg)
    - Deve essere verificato il nome di modo che non abbia spazi vuoti e/o caratteri particolari e poi salvata su server (foto-bla-bla-bla.jpg)
    - Viene inserito il nome nel database con il percorso (http://www.sito.it/immagini/foto-bla-bla-bla.jpg)
    - Viene richiamato ed eseguito il processo inverso così che mostri il nome effettivo dell'immagine di modo da visualizzato in un selectbox foto bla bla bla.jpg

    il prob è che se carico immagini del tipo: foto (15.04.2008).jpg salta fuori un casino.. xke io creo le thumb di queste immagini aggiungendo prima di .jpg _tmb (foto-bla-bla-bla_tmb.jpg)
    e separo il nome dell'immagine con explode(".", $img).. e qui sorge il prob.. xke dp lo script va in confusione.. l'unico modo sarebbe quello di intervenire alla fonte.. quando carico il file $_FILE['upload']['name']; e qui fare la sostituzione di tutti i punti con x esempio degli underscore (_) tranne che x il punto finale dell'estensione.. come posso fare?
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  5. #5
    Il nome della foto caricata via form lo trovi nell'array $_FILES['nome_campo_nella_form']['name'].

    Secondo me non ti conviene usare la stessa funzione per un motivo: se il nome della foto, malauguratamente, dovesse presentare dei caratteri speciali, avresti problemi nella codifica.
    Per capirci, se il carattere à, fosse sostituito da & a grave;, potresti comunque avere dei problemi con l'ampersand e con il punto e virgola.

    Detto questo puoi agire in due modi: o sostituire i caratteri potenzialmente dannosi (nel senso più ampio del termine) facendo una serie di str_replace(), oppure pensare di comunicare all'utente di togliere gli spazi, i caratteri accentati, gli apici e quant'altro prima di caricare l'immagine.

    Spero non ti sia necessario che io ti scriva la funzione con i replace, ma io farei una cosa del genere.

    Codice PHP:

    function prepara_nome_foto($pic) {
     return (bool) 
    preg_match("/[:alnum:]^$/"$pic);
    }


    $nome_foto $_FILES['nome_campo_nella_form']['name'];

    if (
    prepara_nome_foto($nome_foto) == FALSE) {
      echo 
    "
      Spiacente, ma il nome della foto caricata non risulta conforme a quanto richiesto.
      
    Si prega di rinominarlo togliendo caratteri accentati, spazi, apici e quant'altro!
      "
    ;
    } else {
        
    /*
          Il controllo ha dato esito positivo
          Qui metti il resto del codice
       */

    Se qualcosa non ti è chiaro, sai come trovarmi.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    119
    Ciao mi daresti un dritta per aggiungere il controllo in questo codice ?

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.