Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    4

    codice php x aggirare 1 prob di ftp?

    Ciao ragazzi,

    ho messo sul mio sito un form per far uploadare dei file. Funziona bene ma c'è un problema: se si uploada un file che ha degli apostrofi (e probabilmente anche altri caratteri particolari) il file non si può più downloadare, nè rinominare, nè cancellare.
    Quando provo a rinominare/cancellare con il mio client ftp, il server ftp mi da il seguente messaggio di errore:
    codice:
    550 Nome file proibito: /uploads/file\'uploadato.jpg
    Praticamente mi servirebbe una funzione php che mi eliminasse i caratteri strani, quelli che il server ftp non riesce a gestire correttamente.
    Come posso fare secondo voi?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di flessciato
    Registrato dal
    Jun 2002
    Messaggi
    1,522
    così funzia ...

    <?php
    $immagine_inviata = "testo'diprova";
    //'immagine' è il file inviato dal form con la sua estensione
    $nuova_immagine = ereg_replace("(\')","","$immagine_inviata");
    echo "$nuova_immagine";
    ?>

    comunque conviene eliminare la possibilità di inviare TUTTI i caratteri "strani"....
    Slack 10 - Apple G5 2.5 - winzoz xp
    php/mysql/apache
    Flash MX / roba in 3D / roba per il video e l'audio

  3. #3
    Parti in vantaggio:
    Conviene rinominare le immagini con un nome univoco, altrimenti corri il rischio che un utente sovrascrive l'immagine di un altro utente perché ha lo stesso nome.
    Io solitamente faccio riferimento ad un database che mi elenca le immagini; recupero l'ultimo id, aggiungo 1
    e rinomino l'immagine uloadata con questo numero.
    per i caratteri strani...
    Basta dire agli utenti di non usarli!
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  4. #4
    Utente di HTML.it L'avatar di flessciato
    Registrato dal
    Jun 2002
    Messaggi
    1,522
    però se fai una classe potevi usarlo anche per i nomi di login e password...
    Slack 10 - Apple G5 2.5 - winzoz xp
    php/mysql/apache
    Flash MX / roba in 3D / roba per il video e l'audio

  5. #5
    sono tufo non ho capito il fatto della login e password..
    ??? ???
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    4
    Grazie delle risposte, è una delle prime volte che scrivo su questo forum e devo dire che ho ricevuto una bella accoglienza!

    Però nn è detto che io riceva solo immagini. Qualsiasi cosa la gente mi vuole spedire, può farlo, perciò la soluzione di rinominare i file non è praticabile.

    La soluzione più semplice è affidarmi al buon cuore della gente e avvisarli di rinominare file con caratteri particolari.

    Ma visto che siamo (o cerchiamo di essere) programmatori, vorrei effettuare un controllo a monte.

    L'utilizzo di ereg_replace mi sembra la cosa migliore. Solo che devo capire meglio come funziona e sostituire *tutti* i caratteri strani.

    Grazie!

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    4
    Ce l'ho fatta!
    Non so se è stata la soluzione più veloce, ma l'importante è che ci sono riuscito!!

    codice:
    <?php
    
    /*  setting variables  */
    $trans = array(
    	"'" => "", 
    	'"' => "", 
    	"%" => "", 
    	"!" => ".exclamation_mark.", 
    	"\\" => ".backslash.",
    	"\$" => "-", 
    	"/" => "-", 
    	"°" => "", 
    	"[" => ".", 
    	"]" => ".", 
    	"ò" => "o", 
    	"è" => "e", 
    	"é" => "e", 
    	"à" => "a", 
    	"ù" => "u", 
    	"@" => ".chiocchiola.", 
    	"|" => ".pipe.", 
    	"£" => ".lire.", 
    	"&" => ".ampersand.", 
    	"=" => ".uguale.", 
    	"?" => ".punto_interrogativo.", 
    	"^" => ".tilde.", 
    	"ì" => "i", 	
    	"+" => ".plus.", 
    	"*" => ".asterisk.", 
    	"ç" => "c", 
    	'#' => ".cancelletto.", 
    	"§" => "S", 
    	":" => ".", 
    	"(" => "", 
    	")" => "");
    $filename = 'pippo\|!"£$%&/()=?^ìéè[]+*ò@çà\'#°ù§(icq.jpg';
    
    /*  executing code  */
    echo '<pre>';
    echo $filename.'  -> prima
    '.strtr($filename, $trans).'  -> dopo';
    echo '</pre>';
    
    ?>

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.