[英]Avoiding double encoding in <INPUT> while using htmlspecialchars
假设您有一个用户姓名的文本<INPUT>
,他们决定输入
Johnny's Pizza
这保存在DB中
Johnny's Pizza
但是如果用户决定编辑,我将重新填充文本<INPUT>
,如下所示
echo form_input('name', htmlspecialchars($name, ENT_QUOTES, 'UTF-8'));
这将显示为
Johnny's Pizza
在输入字段内。
echo form_input('name', htmlspecialchars($name, ENT_QUOTES, 'UTF-8', FALSE));
也就是说, FALSE
指的是$double_encoding
,但我还是得到了
Johnny's Pizza
在输入字段中。
有没有办法绕过这种双重编码? 这是可以在使用ENT_QUOTES
修复的东西吗?
使用Codeigniter 2.0.3。
使用htmlspecialchars
是正确的方法,如果将其直接输出到页面中,则不会给出您描述的结果。
据推测, form_input
函数希望接收文本而不是HTML,因此它本身运行htmlspecialchars
。 如果是这样,解决方案是只传递文本而不是首先编码HTML的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.