在另一页上发布一个SESSION变量

时间:2012-03-06 02:21:54

标签: php

当我使用下面提供的代码时,一切正常,除非在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> ";
?>

1 个答案:

答案 0 :(得分:4)

使用ENT_QUOTES作为htmlentities()的第二个参数,以确保单引号和双引号都在变量内编码。

echo  "<input type='hidden' name='blog' value='" . htmlentities($_SESSION['blog'], ENT_QUOTES) . "'/>"

由于htmlentities()是函数调用,因此不能像变量,数组元素或对象属性那样在双引号字符串中进行插值。您必须关闭当前打开的字符串并在函数调用的返回中连接。

ENT_QUOTES的{​​{1}}标记对单引号和双引号进行编码,使得一个字符串适合在HTML属性(已经引用)中使用。