【问题标题】:Form Hidden Field Prints out Content to Webpage表单隐藏字段将内容打印到网页
【发布时间】:2015-01-29 00:08:56
【问题描述】:

我的表单代码如下:

 <form action="pdf.php" method="POST" id="pdfform">
       <input type="hidden" name="htmlcontent" value="<?php echo $content ?>" >
       <li><a href="javascript:void(0)" class="button back pdfsubmit">Download as PDF</a></li>

 </form>

但是,我意识到隐藏字段也将内容打印到 HTML 页面,并且有一些额外的 " 和 > 不应该存在。

我认为可能是问题是因为表单的作用是将html数据发送到PHP脚本以将其转换为PDF,变量$content包含html代码,例如:&lt;p&gt;Test 3&lt;/p&gt;&lt;p&gt;&lt;img alt="Cancer" src="http://breakthroughs.cityofhope.org/wp-content/uploads/2013/02/lung-cancer.jpg" style="height:375px; width:500px" /&gt;&lt;/p&gt;

这可能是问题的原因之一,html 也会在隐藏表单内的值末尾打印出额外的“>”。

有人能找出原因吗?

【问题讨论】:

  • 您好,该文件位于 .php 中,并且我正在使用正确配置的网络服务器。我认为这与消毒有关。
  • &amp;quot;替换$content中的任何"
  • 您是否尝试过使用 htmlentities($string,ENT_QUOTES)htmlspecialchars($string,ENT_QUOTES) 之类的方法在隐藏字段中打印 HTML 值?
  • @developerwjk 因为生成的内容是动态的,无法手动替换"
  • 有一个函数叫做str_replace。 (不过拉斯克拉特提到的htmlentitieshtmlspecialchars 会更好)

标签: php html forms hidden-field


【解决方案1】:

不确定这是否是您想要的,但您是否考虑过使用jquery 来设置隐藏字段?例如(在确保您的 $content 变量中没有单引号之后):

<script type='text/javascript'>
   $('[name=htmlcontent]').val('<?php echo str_replace("'","`",$content) ?>');
<script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    相关资源
    最近更新 更多