改变帖子内容

时间:2015-12-07 14:14:09

标签: javascript php jquery ajax

我有一个名为:index.php的文件,其中我有一个表单,在该表单中我有一个ajax代码,我在其中调用PHP文件。这个外部PHP文件将生成隐藏的输入字段,稍后将其附加到我的表单中。

这是ajax代码:

$urlforXmltoHtml = "xmltohtml.php";
$.get($urlforXmltoHtml,
  { uniquekey: Reference },
  function (data) {
    $("#Data").append(data);
    $('#msform').submit();
});

这是index.php中的div,其中生成的隐藏字段将附加到:

 <div id="Data">
 </div>

在xmltohtml.php中我得到了这个:

<?php

session_start();
$xml="";
//gebruik uniquekey van cops.php
$uniquekey = $_GET['uniquekey'];
if (file_exists('downloads/'.$uniquekey.'.xml')) {
    $xml = simplexml_load_file('downloads/'.$uniquekey.'.xml');
    foreach( $xml as $headItems )
      {

        foreach($headItems as $item){
          $_SESSION['count'] = $_SESSION['count'] + 1;
          $count =   $_SESSION['count'];
          echo '<div style="display:none;">';
          //preg replaces successive space characters
          $description = preg_replace('/\s+/', ' ', $item->->Description);
          //encoding http://php.net/manual/en/function.htmlentities.php
                 echo '<input type="hidden" name="DESCRIPTION['.$count.']" value="'. htmlspecialchars($description, ENT_QUOTES) .'">';
      echo '<input type="hidden" name="-QUANTITY['.$count.']" value="'. htmlspecialchars($item->Quantity,ENT_QUOTES) .'">';
          echo '</div>';
        }
      }
} else {

  exit('Failed to open xml.' . $uniquekey);
}
?>

但现在作为输入,当我得到一个$ description例如witth item&amp;然后,如果我复制粘贴来自chrome的元素检查器的html代码,我看到它将被更改为项目$ amp;实际上,当我发布时,我只想发布项目&amp;而不是item&amp;

我知道如何更改此内容以便发送&而非&amp;,还是只发送&

2 个答案:

答案 0 :(得分:4)

您不应该通过将网址参数连接到网址来发送网址参数,而是将其作为data参数发送到jQuery&#39; $.get

$urlforXmltoHtml = "xmltohtml.php";
$.get($urlforXmltoHtml,
  { uniquekey: Reference },
  function (data) {
    $("#Data").append(data);
    $('#msform').submit();
});

另一方面,你在这里做的是非常危险:

$uniquekey = $_GET['uniquekey'];
if (file_exists('downloads/'.$uniquekey.'.xml')) {
    $xml = simplexml_load_file('downloads/'.$uniquekey.'.xml');

从不信任来自客户的输入!在这种情况下,您应该将一组密钥列入白名单,并仅使用这些密钥来检索/操作服务器上的文件。

答案 1 :(得分:0)