php-codeigniter - 显示文本框值的HTMLENTITIES

时间:2010-06-25 12:03:14

标签: php codeigniter

通过我的应用程序,我想显示值htmlentities(str),因为没有对single或double或任何特殊char的限制。 而不是使用或转换htmlentities(str),如

<input id="text" name="text" value="<?php if(isset($_POST['text'])) { echo htmlentities($_POST['text']); } ?>

有没有办法为所有文本框全局设置?

3 个答案:

答案 0 :(得分:1)

在codeigniter中,我们可以将其作为$rules['other_gait']="htmlentities|max_length[200]";

等规则的一部分

但感谢提示使用htmlentities。

答案 1 :(得分:0)

使用你的代码结构 - 不,但你可以预处理$ _POST ..这种方法不是很好,但是如果你只填写你的表单,就像在例子中一样,它会起作用。

$parametersToPreprocess = array(
    'text1',
    'text2',
);
foreach (array_keys($_POST) as $postKey) {
    if (in_array($postKey, $parametersToPreprocess)) {
        $_POST[$postKey] = htmlentities($_POST[$postKey]);
    }
}

答案 2 :(得分:0)

不。 PHP的内置模板没有自动转义输出值的功能。您可以管理的最好方法是定义一个具有短名称的函数,以节省一些输入:

<?php
    function h($s) {
        echo htmlspecialchars($s, ENT_QUOTES);
    }
?>

<input id="text" name="text" value="<?php h(isset($_POST['text'])? $_POST['text'] : ''); ?>">

(注意:htmlspecialchars,而不是htmlentities,它会尝试对所有非A​​SCII字符进行HTML编码,如果你没有传递正确的{{1} }参数。)