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 :

Apostrophe dans un formulaire


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 15
    Points
    15
    Par défaut Apostrophe dans un formulaire
    Bonjour à tous,

    J'ai un petit problème dans un de mes formulaires.

    J'ai une phrase enregistrée dans une base de donnée contenant une apostrophe. Disons "Vive l'été".

    J'utilise un champ "select" pour aller la récupérer de $row[titre]

    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
     
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
     
    <SELECT name="sup" size = '8' style="margin-left:200px">
     
    <OPTION value="info">--- Selectionnez la News &agrave; Supprimer ---</OPTION>
     
      <?php
     
     
       $dp = mysql_connect("localhost", "***", "****");
       mysql_select_db("*****", $dp);
     
      $sql = "SELECT * FROM banews";
      $result = mysql_query($sql);
     
      while ($row = mysql_fetch_assoc($result)) 
      {
        $temp = addslashes($row[titre]);
        echo "<OPTION VALUE='$temp'>$row[titre]</OPTION>";
      }
     
     
      mysql_close($dp);
      ?>
    </SELECT>
    <input type="submit" name="submit2" value="Supprimer">
    </form>
    La phrase s'affiche bien correctement dans le champ select, mais quand je la selectionne et envoie le formulaire, ce que je recupère dans la variable POST est 'Vive l\' au lieu de 'Vive l\'été'...

    Quelqu'un a t-il une idée du problème?

    Merci d'avance,

    Oxygan

  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
    Les magic_quotes_gpc sont surement activés sur ton serveur :
    http://us3.php.net/magic_quotes

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Non, ils sont bien "OFF" ...

    une autre idée?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Tout simplement qu'avec HTML, l'échappement des apostrophes ne sert absolument à rien.

    eg :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" value='toto\'titi' />
    Une méthode simple lorsqu'on sait qu'on peut rencontrer des apostrophes mais pas de guillemets, c'est d'utiliser des guillemets pour délimiter ses attributs HTML.

    Sinon http://fr.php.net/manual/fr/function.htmlentities.php

    Ou mieux, ne pas se mettre dans ce genre de situation en utilisant une valeur numérique associée au libellé.

  5. #5
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Points : 2 399
    Points
    2 399
    Par défaut
    htmlentities est bien la solution.

    Attention dans ton cas il faudra modifier le 2eme paramètre qui est facultatif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ($row = mysql_fetch_assoc($result)) 
      {
        $temp = htmlentities($row[titre], ENT_QUOTES);
        echo "<OPTION VALUE='$temp'>$row[titre]</OPTION>";
      }

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Un tout grand merci à vous, ca marche mnt !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ($row = mysql_fetch_assoc($result)) 
      {
        echo "<OPTION VALUE=\"$row[titre]\">$row[titre]</OPTION>";
      }

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

Discussions similaires

  1. [AC-2010] Problème apostrophe dans un formulaire
    Par redojackson dans le forum VBA Access
    Réponses: 6
    Dernier message: 26/05/2013, 14h23
  2. a propos de l'apostrophe dans un formulaire
    Par bobafric dans le forum IHM
    Réponses: 8
    Dernier message: 10/10/2009, 18h59
  3. [script.aculo.us] Ajax.request & apostrophes dans un formulaire et Inplace.editor & HTML
    Par Tsu dans le forum Bibliothèques & Frameworks
    Réponses: 10
    Dernier message: 16/02/2009, 22h45
  4. [MySQL] Traitement apostrophe dans zone formulaire de type Text
    Par dfournier dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/11/2006, 16h14
  5. [MySQL] les apostrophe me cause un problème dans un formulaire
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 22/10/2005, 20h28

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