Visualizzazione risultati 1 fino 3 di 3

Discussione: [PHP upload di files] Caratteri non ammessi nel nome dei files da Altervista

  1. #1
    Berello non è connesso Neofita
    Data registrazione
    01-12-2005
    Messaggi
    5

    Predefinito [PHP upload di files] Caratteri non ammessi nel nome dei files da Altervista

    Ho sviluppato, aiutandomi con script trovati in rete, una pagina PHP che permette agli utenti di lavorare con le cartelle (solo alcune prefissate) dello spazio web.
    Gli utenti possono creare e cancellare cartelle, caricare files ed eliminarli.

    Mentre sviluppavo lo script, effettuavo i test sul mio computer, che ha Apache.
    Qui funziona tutto perfettamente.

    Una volta spostato il codice PHP su Altervista, mi sono accorto che qui non funzionano più alcune cose, che dipendono dai caratteri contenuti nei nomi dei files.

    Ad esempio: Posso creare cartelle che contengono caratteri accentati, ma poi queste saranno inutilizzabili (se provo a fare l'upload di un file in una di esse, il file non viene caricato); se carico un file contenente uno spazio nel suo nome, il file sparisce nel nulla, nonostante la funzione "move_uploaded_file()" non restituisca alcun errore...
    E cose simili.

    Tutte queste cose non avvengono sul mio computer (che sembrerebbe supportare tutti i caratteri).
    Ho provato comunque a correggere lo script, facendo in modo che ogni lettera accentata o carattere strano venga sostituito da un segno di percentuale ed un numero esadecimale, ma a quanto pare Altervista non supporta nemmeno i segni di percentuale!!!

    Allora vorrei sapere: Quali sono i caratteri non supportati da Altervista nei nomi dei files?
    Oppure: esiste un elenco di tutti e soli i caratteri supportati da Altervista nei nomi dei files?

    Con una di queste informazioni potrei cavarmela in qualche modo, modificando un po' lo script...

    (o, altrimenti, non è che esiste una qualche funzione di PHP che risolve automaticamente o più semplicemente il mio problema?)

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Di solito è consigliato utilizzare per i nomi dei file e delle cartelle le lettere, i numeri, -, _ e il punto. Per controllare la presenza di caratteri diversi da quelli citati da me potresti provare a utilizzare le espressioni regolari.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    Berello non è connesso Neofita
    Data registrazione
    01-12-2005
    Messaggi
    5

    Predefinito

    Si, sulle espressioni regolari non c'è dubbio. Non le uso molto, ma penso che sarà una soluzione utile.

    Però mi interessava sapere qual è il "range" massimo di caratteri utilizzabili... Comunque considerando che lo script potrebbe essere messo anche su altri server che chissà quali caratteri non ammetteranno, penso che cercherò di eliminare automaticamente tutti i caratteri esclusi quelli che hai citato.

    Cmq se qualcuno sa quali sono i caratteri ammessi da Altervista (ad esempio la persona che ha scritto il codice del pannello personale degli utenti, nella sezione "Gestione files") me lo dica, per favore!
    Così mi faccio un'idea.

    Ciò che mi ha stupito non è l'impossibilità di inserire caratteri strani, ma l'impossibilità di inserire il segno di percentuale... Quello non me l'aspettavo proprio!

    Intanto mi do da fare con le espressioni regolari... Se ci sono novità, informatemi


    EDIT: Aiutandomi con internet, ho preparato una funzione che dovrebbe risolvere il mio problema.
    Mi dareste un parere? Secondo voi ho scordato qualcosa? O potrei migliorarla in qualche modo?
    Grazie!

    Ecco il codice:

    Codice PHP:
    function correggi($stringa) {
    $correzioni = array("À" => "A", "Á" => "A", "Â" => "A", "Ä" => "A", "Å" => "A", "Æ" => "AE", "Ç" => "C", "È" => "E", "É" => "E", "Ê" => "E", "Ë" => "E", "Ì" => "I", "Í" => "I", "Î" => "I", "Ï" => "I", "Ñ" => "N", "Ò" => "O", "Ó" => "O", "Ô" => "O", "Ö" => "O", "Ù" => "U", "Ú" => "U", "Û" => "U", "Ü" => "U", "ß" => "ss", "à" => "a", "á" => "a", "â" => "a", "ä" => "a", "æ" => "ae", "ç" => "c", "è" => "e", "é" => "e", "ê" => "e", "ë" => "e", "ì" => "i", "í" => "i", "î" => "i", "ï" => "i", "ñ" => "n", "ò" => "o", "ó" => "o", "ô" => "o", "ö" => "o", "ù" => "u", "ú" => "u", "û" => "u", "ü" => "u", "Ő" => "O", "ő" => "o", "Œ" => "OE", "œ" => "oe");
    foreach(
    $correzioni as $chiave => $valore) {
    $stringa = str_replace($chiave, $valore, $stringa);
    }
    $stringa = eregi_replace("[[:space:]]" , "_", $stringa);
    //$stringa = eregi_replace("[^a-z0-9._-]" , "", $stringa);
    $stringa = eregi_replace("[^[:alnum:]._-]" , "", $stringa);
    return
    $stringa;
    }
    Ultima modifica di funcool : 19-02-2008 alle ore 19.40.15

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •