繁体   English   中英

PHP - 使用包含引号的变量输入隐藏字段

[英]PHP - Input hidden fields with variables that contain quotes

我试图为一份工作机会做一名编辑。 它必须有一个预览 function。有 2 种形式。 第一个表单提交预览,第二个表单在预览存在时出现并发送变量以将它们保存在数据库中。 问题是,当提交第二个表单时,所有引号都消失了。 我尝试了 mysql_real_escape_string、htmlspecialchars、htmlentitles,但没有任何效果。 你知道问题出在哪里吗? 会不会是有问题,因为我使用变量'$content'来存储站点的内容,而不是用'echo'直接制作output? 谢谢!

<td><input style='float:left;' type='submit' name='jobpreview' value='preview' />
</form>";
if(isset($_GET['preview']))
{ 
$_POST['titel'] = htmlentities($_POST['titel']);
$_POST['elm1'] = htmlentities($_POST['elm1']);
  $content .= " <td><form action='?s=intern&sub=neuerjob&preview' method='POST'>
  <input type='hidden' name='titel' value='".$_POST['titel']."' />
  <input type='hidden' name='elm1' value='".$_POST['elm1']."' />
  <input style='float:left;' type='submit' name='jobsave' value='save' />
  </form></td></tr></table>";
}

您需要使用htmlentities()的第二个参数来对引号进行编码。

$titel = htmlentities($_POST['titel'], ENT_QUOTES);
$elm1 = htmlentities($_POST['elm1'], ENT_QUOTES);

 <input type='hidden' name='titel' value='".$titel."' />
 <input type='hidden' name='elm1' value='".$elm1."' />

为此, htmlentities()矫枉过正,您也可以将htmlspecialchars()ENT_QUOTES参数一起使用。

$titel = htmlspecialchars($_POST['titel'], ENT_QUOTES);
$elm1 = htmlspecialchars($_POST['elm1'], ENT_QUOTES);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM