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 :

fopen() avec des "guillemets simples"


Sujet :

Langage PHP

  1. #1
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut fopen() avec des "guillemets simples"
    Bonjour,

    Je me tourne une nouvelle fois vers la communauté developpez.com.

    Mon problème :
    Je souhaite ouvrir (et explorer par la suite) des dossiers contenant dans le nom des guillemets simple ou aussi appelés apostrophes en bon français.

    Ma solution :
    Je récupère le dossier courant depuis l'URL avec un bon vieux GET[].
    J'affecte ce GET à une variable PHP, puis je passe cette variable en paramètre à la fonction fopen.
    > Dès que le nom de dossier contient un ' , fopen voit un \' . En fait c'est le GET qui rajoute l'échappement.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    fopen("mon chemin avec qu'un apostrophe");
    > Pas de problème
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $monChemin = $_GET["monchemin"]; //Avec monchemin = mon chemin avec qu'un apostrophe
    fopen($monChemin);
    > Problème


    Si vous avez une idée ou connaissez la raison dece problème, merci d'avance.
    Si bien sur je n'ai pas suffisamment été clair, je me ferrais un plaisir de me compléter.

    A+
    Prenez le temps d'aller vite...

    Programme sous Windows, en C avec Code::Blocks, en Java JRE 1.6. avec Eclipse, en PHP/HTML/CSS avec Dreamweaver CS5 ou NotePad++ et en VBA sous avec Access 2010, Excel 2010, Word 2010 et Outlook 2010.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tes variables $_GET sont auto-echappé, c'est que ton serveur utilise les magic_quotes GPC.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Hum, les magic quotes...
    C'est grave docteur ?

    PS : C'est un serveur free ^^
    Prenez le temps d'aller vite...

    Programme sous Windows, en C avec Code::Blocks, en Java JRE 1.6. avec Eclipse, en PHP/HTML/CSS avec Dreamweaver CS5 ou NotePad++ et en VBA sous avec Access 2010, Excel 2010, Word 2010 et Outlook 2010.

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 185
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 185
    Points : 8 381
    Points
    8 381
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par miron Voir le message
    Hum, les magic quotes...
    C'est grave docteur ?
    Tu ne connaîs pas ? Doc : http://fr.php.net/manual/fr/security.magicquotes.php

    PS : C'est un serveur free ^^
    Fais un phpinfo( ) pour voir ce qu'il en est.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Merci pour la doc

    En effet magic quotes gpc est "On".

    Y a t'il une solution pour dés-échapper le texte ?
    Prenez le temps d'aller vite...

    Programme sous Windows, en C avec Code::Blocks, en Java JRE 1.6. avec Eclipse, en PHP/HTML/CSS avec Dreamweaver CS5 ou NotePad++ et en VBA sous avec Access 2010, Excel 2010, Word 2010 et Outlook 2010.

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 185
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 185
    Points : 8 381
    Points
    8 381
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par miron Voir le message
    Merci pour la doc

    En effet magic quotes gpc est "On".

    Y a t'il une solution pour dés-échapper le texte ?
    Oui, c'est indiqué dans la doc http://fr.php.net/manual/fr/security....disabling.php
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  7. #7
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Merci beaucoup !!!

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //Désactivation des guillemets magiques à l'exécution
    if (get_magic_quotes_gpc()) {
        function stripslashes_deep($value)
        {
            $value = is_array($value) ?
                        array_map('stripslashes_deep', $value) :
                        stripslashes($value);
     
            return $value;
        }
     
        $_POST = array_map('stripslashes_deep', $_POST);
        $_GET = array_map('stripslashes_deep', $_GET);
        $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
        $_REQUEST = array_map('stripslashes_deep', $_REQUEST);
    }

    Fonctionne à merveille.

    Par contre si j'applique l'exemple 1 dans le .htaccess j'ai une erreur 500 du serveur free.

    Encore merci
    Prenez le temps d'aller vite...

    Programme sous Windows, en C avec Code::Blocks, en Java JRE 1.6. avec Eclipse, en PHP/HTML/CSS avec Dreamweaver CS5 ou NotePad++ et en VBA sous avec Access 2010, Excel 2010, Word 2010 et Outlook 2010.

  8. #8
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 185
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 185
    Points : 8 381
    Points
    8 381
    Billets dans le blog
    17
    Par défaut
    Par contre si j'applique l'exemple 1 dans le .htaccess j'ai une erreur 500 du serveur free.
    Ouaip, Free doit pas apprécier qu'on touche trop aux .htaccess
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

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

Discussions similaires

  1. simple quote et double quote
    Par sam01 dans le forum Langage
    Réponses: 2
    Dernier message: 24/06/2010, 17h05
  2. Script shell : afficher le contenu des variables entre simple quote
    Par mualki dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 23/01/2010, 00h14
  3. [Tableaux] souci avec des simples quotes
    Par Jean Fi dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2006, 20h13

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