1

いくつかの情報をphpフォームに表示しようとするxmlファイルがあります。

だから私はそのようなことをしようとしてきました:

<?php 

$url="tmp/".$_GET['n_doss']."-".date('d-m-Y')."-legale.xml";
if(file_exists($url))
{

     $chaineXML= $url;
     $dom = new DomDocument();
     $dom->load($chaineXML);
     $date = $dom->getElementsByTagName('time');
     $time = DateTime::createFromFormat("d/m/Y H:i:s", $date->item(0)->nodeValue);
     $datecreditsafe=date_format($time, 'd-m-Y');
     if($dom->getElementsByTagName('errors')->length != 0)
     {
        header('Location: index.php?p=add_debiteur&n_doss='.$_GET['n_doss'].'&type='.$_GET['type'].'&mode='.$_GET['mode'].'&step=4&creditsafe=false&siret='.$_GET['siret'] );
     }
       else
      {
         if(!empty($data['forme_juridique']))
         {
              echo "<label>Forme juridique:</label><input type='text' name='forme_juridique'><br>";
         }
         else
         {
             if($dom->getElementsByTagName('legalform')->length != 0)
                 {
                 $etat = $dom->getElementsByTagName('legalform');
                 $forme_juridique=$etat->item(0)->nodeValue;    
                 echo "<label>Forme juridique:</label><input type='text' name='forme_juridique' value='".utf8_decode(stripslashes($forme_juridique))."'><br>";
                 }
                 else
                 {
                 echo'<label for="forme_juridique">Forme Juridique:</label><table width="45%"       border="0">
                        <tr>
                        <td width="50%"><input type="checkbox" name="forme_juridique" value="SAS" onclick="limite_check(this.name, 1)" />
                        SAS</td>
                        <td width="50%"><input type="checkbox" name="forme_juridique" value="SA" onclick="limite_check(this.name, 1)" />
                          SA</td>
                          </tr>
                          <tr>
                        <td><input type="checkbox" name="forme_juridique" value="SARL" onclick="limite_check(this.name, 1)" /> 
                        SARL</td>
                    <td><input type="checkbox" name="forme_juridique" value="EURL" onclick="limite_check(this.name, 1)" />
                      EURL</td>
                      </tr>
                      <tr>
                        <td><input type="checkbox" name="forme_juridique" value="SNC" onclick="limite_check(this.name, 1)" />
                    SNC</td>
                    <td><input type="checkbox" name="forme_juridique" value="SDF" onclick="limite_check(this.name, 1)" />
                  SDF</td>
                  </tr>
                  <tr>
                <td><input type="checkbox" name="forme_juridique" value="Soci&eacute;t&eacute;  Particuli&egrave;re" onclick="limite_check(this.name, 1)" />
                  Soci&eacute;t&eacute; Particuli&egrave;re </td>
                <td><input type="checkbox" name="forme_juridique" value="Entreprise Individuelle" onclick="limite_check(this.name, 1)" />
                  Entreprise Individuelle</td>
                  </tr>
                  <tr>
                <td><input type="checkbox" name="forme_juridique" value="Artisan" onclick="limite_check(this.name, 1)" />
                  Artisan</td>
                <td><input type="checkbox" name="forme_juridique" value="Commer&ccedil;ant"     onclick="limite_check(this.name, 1)" />
              Comme&ccedil;ant</td>
              </tr>
              <tr>
            <td><input type="checkbox" id="box" name="forme_juridique" value="Autre" onclick="GereControle(\'box\', \'forme_juridique2\', \'1\');limite_check(this.name, 1)"/>
              Autre</td>
            <td><input type="text" name="forme_juridique2" id="forme_juridique2" style="visibility:hidden" /></td>
              </tr>
        </table>';
                 }

            }
      }

しかし、本当の問題は、この変数の一部しか表示されないことです。実際に表示される実際の部分は、SAàconseild'administrationです。

そしてそれは私にSAàconseildだけを表示します

私は次のようないくつかのことを試しました:

str_replace("'","&#039;",$str) 

また

htmlentities($str, ENT_QUOTES, "UTF-8")

またはもう一度mysql_real_escape_string

またはaddslashesおよびstripslashes

しかし、私はそれを機能させる方法を見つけられませんでした。

よろしくお願いします

4

4 に答える 4

3

echo行を次の行に置き換えてみてください。

echo '<label>Forme juridique:</label><input type="text" name="forme_juridique" value="' . htmlspecialchars($data['forme_juridique']).'"><br>';
于 2012-10-03T08:30:12.197 に答える
0

エコーされた実際のHTMLを確認しましたか?したがって、それが一重引用符の問題によって引き起こされたのか、それとも内容がまさに「SAàconseild」であったのかを知ることができます。

または、二重引用符で値を引用することもできます。

于 2012-10-03T08:51:02.773 に答える
0

試す:

str_replace('"','\"',$str)
于 2012-10-03T08:29:45.007 に答える
0

このコードはより良い結果をもたらします:

addslashes($data['forme_juridique'])
于 2013-04-08T09:26:37.027 に答える