当我使用下面提供的代码时,一切正常,除非在SESSION中有撇号或其他html特殊字符,我试图传递该值。我已经尝试了htmlspecialchars()和htmlentities()都没有成功。请帮忙。 谢谢, 詹姆斯
<?php
<form action='ashlyBlogBig2.php' method='POST'>
<input type='hidden' name='title' value='{$_SESSION['title']}'/>
<input type='hidden' name='time' value='{$_SESSION['time']}'/>
<input type='hidden' name='blog' value='{$_SESSION['blog']}'/>
<input type='submit' name='to you' class='productButtons' value='Read On. . . .'>
</form> ";
?>
答案 0 :(得分:4)
使用ENT_QUOTES
作为htmlentities()
的第二个参数,以确保单引号和双引号都在变量内编码。
echo "<input type='hidden' name='blog' value='" . htmlentities($_SESSION['blog'], ENT_QUOTES) . "'/>"
由于htmlentities()
是函数调用,因此不能像变量,数组元素或对象属性那样在双引号字符串中进行插值。您必须关闭当前打开的字符串并在函数调用的返回中连接。
ENT_QUOTES
的{{1}}标记对单引号和双引号进行编码,使得一个字符串适合在HTML属性(已经引用)中使用。