Pb : htmlspecialchars

Résolu
Bonjour,

J'ai un soucis sur un $_GET et un $_POST.

Dans les 2 cas, la valeur de la variable commence par L' <==== L apostrophe

Dans ma table MySQL, je n'ai pas L\' mais bien L'.

Sur ma page cible, je fais bien appel à :
htmlspecialchars($_POST['variable']) et htmlspecialchars($_GET['variable'])

par qqchose de type :
<?php echo htmlspecialchars($_POST['variable']) . htmlspecialchars($_GET['variable']); ?>

Pourtant, ce qui s'affiche, c'est bien L\' pour $_POST et $_GET, que je mette htmlspecialchars ou pas.
Et là je me dis bah zut, lol

Pourquoi ?

Merci de votre explication...
Configuration: Windows XP
Firefox 2.0.0.7

6 réponses

  1. J'ai essayé en rajoutant ENT_QUOTES avec :

    <?php echo htmlspecialchars($_POST['variable'], ENT_QUOTES) . htmlspecialchars($_GET['variable'], ENT_QUOTES);

    ça marche tjrs pas...

    vraiment personne pour m'aider ???
    1. bonsoir,

      utilise plutôt ceci ou du moins en partie pour po faire trop lourd [tu as tout ton clavier ;)]:

      <?php
      $v1="A";
      $v2="B";
      $v3="C";
      $v4="D";
      $v5="E";
      $v6="F";
      $v7="G";
      $v8="H";
      $v9="I";
      $v10="J";
      $v11="K";
      $v12="L";
      $v13="M";
      $v14="N";
      $v15="O";
      $v16="P";
      $v17="Q";
      $v18="R";
      $v19="S";
      $v20="T";
      $v21="U";
      $v22="V";
      $v23="W";
      $v24="X";
      $v25="Y";
      $v26="Z";
      $v27="²";
      $v28="³";
      $v29="&";
      $v30="é";
      $v31="\"";
      $v32=chr(32);
      $v33="§";
      $v34="è";
      $v35="!";
      $v36="ç";
      $v37="à";
      $v38=chr(41);
      $v39="-";
      $v40="°";
      $v41="^";
      $v42="$";
      $v43="ù";
      $v44="µ";
      $v45=",";
      $v46=";";
      $v47=":";
      $v48="=";
      $v49="£";
      $v50="¨";
      $v51="*";
      $v52="%";
      $v53="£";
      $v54="?";
      $v55=".";
      $v56="+";
      $v57=">";
      $v58="<";
      $v59="\\";
      $v60=chr(126);
      $v61=chr(96);
      $v62=chr(180);
      $v63=chr(93);
      $v64=chr(91);
      $v65=chr(125);
      $v66=chr(123);
      $v67=chr(94);
      $v68=chr(35);
      $v69=chr(64);
      $v70=chr(124);
      $v71=chr(48);
      $v72=chr(49);
      $v73=chr(50);
      $v74=chr(51);
      $v75=chr(52);
      $v76=chr(53);
      $v77=chr(54);
      $v78=chr(55);
      $v79=chr(56);
      $v80=chr(57);
      $v81=chr(40);
      ?>

      ton texte
      <?php
      echo "<h2>$v</h2>"; // $v est à remplacer par $v numéro x symbolisant le caractère recherché.
      ?>
      suite de la ligne de ton texte
      1. Salut,

        pour ajouter les / devant les ' tu utilises addslashes($_POST['.......']);

        pour les enlever stripslashes(.....);

        @lain
        1. Bonsoir Alain,

          Je reviens vers toi toujours pour un pb de en php/mysql.

          J'ai deux listes déroulantes liées par un javascript. La première (symptôme) contient des options
          qui peuvent inclure des quotes (ex: "troubles de l'expression"). La présence de ce quote fait
          évidemment planter la requête SQL que la deuxième liste déroulante utilise pour générer ses options.

          La fonction mysql_real_escape_string(htmlspecialchars( $ marequete, ENT_QUOTES ) ) ne me permet pas
          d'échapper à ce problème; je l'ai peut être mal utilisée.

          Merci d'avance si tu peux m'apporter des précisions.

          MLN