IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] Noms de fichiers et apostrophes [Débutant(e)]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Par défaut [Upload] Noms de fichiers et apostrophes
    Soit un un upload d'un fichier nommé "l'avion.txt" (presence d'apostrophe)
    En local (easyphp), il apparait à l'identique aprés un upload
    Sur certains serveurs, le nom est échappé et devient "l\'avion.txt"

    1) quelle directive serveur fait varier la chose ?

    2) Dans la mesure ou je désire faire un delete sur ce fichier, comment faire pour detecter si je suis en présence d'un nom échappé ou pas ?

    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour,

    Ce serait tout de même plus simple de remplacer l'apostrophe au chargement du fichier par un tiret ou underscore.

    Ainsi tu conserves un nom de fichier correct (sans apostrophe) et ton unlink() fonctionnera.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Par défaut
    Le nom du fichier est affiché en clair sur la page Web et je souhaite conserver la lisibilité avec apostrophe (c'est pour des enfants)

    Sinon je vais essayer de détecter la presence d'un \ sur le nom du fichier avec du regex... mais un coup de pouce serait le bienvenu.

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Rien ne t'empêche de remplacer l'apostrophe par un underscore pour l'upload et de remplacer ensuite le underscore par un apostrophe pour l'affichage.

    Note:
    Sur certains systèmes, tous les caractères ne sont pas autorisés pour les noms de fichiers, ce qui peut générer des erreurs.

    Pour les noms des fichiers, le plus sûr :
    • en minuscules
    • sans accent
    • sans caractères spéciaux
    • sans espace
    • sans ponctuation (sauf tiret, underscore, point)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Par défaut
    Oui mais j'ai aussi des enseignants qui upload des noms de fichiers avec des underscore...

    Pour bien détailler :
    C'est une appli que les enseignants installe. Je ne connais pas le type de serveur

    j'ai une table mysql ou j'ai mes noms de fichiers
    Dans la table et qq soit le serveur je vois l'avion.txt
    Dans le dossier écrit en dur, j'ai
    • Sur un easyphp local l'avion.txt
    • Sur un serveur autre l'\avion.txt (mis par le serveur)


    Quand je realise un lien pour lecture, tout cela fonctionne parfaitement. Sur le serveur autre, il fait curieusement tout seul l'association l'avion.txt de la table vers l'\avion.txt

    Le probleme se pose lors d'un unlink
    Dois-je ecrire unlink(l'avion.txt) ou unlink (l'\avion.txt)
    Je ne sais pas au bout ce qu'il ya comme nom ecrit en dur...

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Je ne sais pas au bout ce qu'il ya comme nom ecrit en dur...
    Tu n'as pas accés au serveur ? Même en FTP ?

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par pierre50
    1) quelle directive serveur fait varier la chose ?
    Directive magic_quotes_gpc à On ?

    Citation Envoyé par pierre50
    2) Dans la mesure ou je désire faire un delete sur ce fichier, comment faire pour detecter si je suis en présence d'un nom échappé ou pas ?
    Voir la fonction get_magic_quotes_gpc ?

    Edit : en partie grillé

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Par défaut
    Pour faire très court et encore plus simple...
    A la suite d'un upload d'un fichier nommé l'avion.txt, quel est le paramétrage serveur qui fait qu'un easyphp local code en dur l'avion.txt et qu'un serveur type Free code automatiquement l\'avion.txt ?

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Vous avez déjà la réponse
    Citation Envoyé par pierre50
    quel est le paramétrage serveur qui fait qu'un easyphp local code en dur l'avion.txt
    Directive magic_quotes_gpc sur Off (la "norme").

    Citation Envoyé par pierre50
    qu'un serveur type Free code automatiquement l\'avion.txt ?
    Directive magic_quotes_gpc sur On.

    Voir la fonction get_magic_quotes_gpc renvoyant un booléen indiquant cet état ainsi que cette contribution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] Nom de fichier avec nom accentué
    Par MacReiben dans le forum Langage
    Réponses: 1
    Dernier message: 15/09/2008, 20h50
  2. [Upload] upload d'un fichier avec apostrophe
    Par SegmentationFault dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2006, 11h37
  3. [Upload] Nom de fichier avec un/des caractères accentués ?
    Par Christophe Charron dans le forum Langage
    Réponses: 11
    Dernier message: 09/06/2006, 22h46
  4. [Upload] Nom de fichier
    Par Goon dans le forum Langage
    Réponses: 9
    Dernier message: 27/03/2006, 18h01
  5. [Upload] Nom de fichier à échapper
    Par Jean_Benoit dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2006, 15h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo