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 :

Problème d'interprétation des guillemets " sur le serveur


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut Problème d'interprétation des guillemets " sur le serveur
    Bonjour.
    Je suis aujourd'hui hébergé chez PhpNux.
    Je rencontre un problème d'interprétation des guillemets " sur le serveur.
    Pour l’envoi de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span style="color:red">mot</span>
    Le fichier récupère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span style=\"color:red\">mot</span>
    J'ai fait un petit programme léger sans DB pour actualiser rapidement un petit fichier .txt
    Voici le code (tout simple) :
    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head></head><body>
    <?php
    $commentaire = $_POST['commentaire'];
    if ($commentaire!="")
    {
    // ouverture en lecture ( a+)
    $ouvre=fopen("texte00.txt","a+");
    // écriture fichier
    fwrite($ouvre,$commentaire);
    // fermeture fichier
    fclose($ouvre);
    }
    ?>
    <form action="<?$PHP_SELF;?>" method="post">
    <textarea name="commentaire"></textarea>
    <input type="submit" value="Ecrire">
    </form>
    <br />
    <?php
    // ouverture fichier en lecture "r"
    $ouvre=fopen("texte00.txt","r");
    // tant que pas en fin de fichier
    while (!feof ($ouvre))
    {
    // mise en tampon des données
    $tampon = fgets($ouvre, 4096);
    // affichage du tampon
    echo $tampon;
    }
    // fermeture fichier
    fclose($ouvre);
    ?>
    </body></HTML>
    Le code fonctionne par exemple chez "lescigales.org" (hébergeur gratuit) mais pas chez PhpNux.
    Ma question :
    Puis-je faire quelque chose pour éviter que des \ se mettent dans mon html et à tous mes guillemets " ' pour pouvoir me servir du html dans mes posts,
    Par avance un grand merci !!

  2. #2
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Les magic quotes doivent être activées sur un serveur et pas sur l'autre.

    Il faut faire comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (get_magic_quotes_gpc()) {
      $commentaire = $_POST['commentaire'];
    }
    else {
      $commentaire = addslashes($_POST['commentaire']);
    }

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Le plus pratique est de faire une petite fonction générique que tu pourras utiliser quelque soit la configuration du serveur. A utiliser donc sur les variables gpc c'est à dire get, post et cookie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function Verif_magicquotes ($chaine)
    {
    if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
     
    return $chaine;
    } 
     
    $var_get = Verif_magicquotes($_GET['var_get']);
     
    $var_post = Verif_magicquotes($_POST['var_post']);
     
    $var_cookie = Verif_magicquotes($_COOKIE['var_cookie']);

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Merci à vous de vous être penché sur mon problème, mais aucun code ne fonctionne.
    Aurais-je mal placé les codes ?
    J'ai essayé de différentes façons, rien à faire, le serveur me retourne mes " et ' comme ça : \" \'
    Que faire ?
    Ou si j'ai fait une faute, auriez vous la gentillesse de me faire voir la syntaxe exacte pour placer avec mon code s’il vous plait?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 64
    Points : 38
    Points
    38
    Par défaut
    Ok, il faut ajouter au code :
    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    # On n'exécute la boucle que si nécessaire
    if(get_magic_quotes_gpc() == 1){
     
    # Définition de la fonction récursive.
    function remove_magic_quotes(&$array)
    {
     foreach($array as $key => $val){
     
      # Si c'est un array, recurssion de la fonction, sinon suppression des slashes
      if(is_array($val)){
       remove_magic_quotes($array[$key]);
      } else if(is_string($val)){
       $array[$key] = stripslashes($val);
      }
     }
    }
     
    # Appel de la fonction pour chaque variables.
    # Notes, vous pouvez enlevez celle d'on vous ne vous servez pas.
    # Personnellement, j'enlève $_REQUEST et $_FILES
     
    remove_magic_quotes($_POST);
    remove_magic_quotes($_GET);
    remove_magic_quotes($_REQUEST);
    remove_magic_quotes($_SERVER);
    remove_magic_quotes($_FILES);
    remove_magic_quotes($_COOKIE);
    }
    Merci de m'avoir répondu et mis sur la voie.
    Source :
    ICI
    Merci à eux aussi.

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

Discussions similaires

  1. Problème de deployement des services web sur eclipse
    Par charguimed1 dans le forum Services Web
    Réponses: 3
    Dernier message: 08/08/2008, 17h53
  2. Réponses: 4
    Dernier message: 26/05/2008, 03h26
  3. Réponses: 3
    Dernier message: 22/02/2008, 17h51
  4. problèmes pour faire des états paramétrés sur vb6
    Par k_alexis dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 16/10/2007, 19h59

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