[英]php htmlspecialchars
我应该使用哪种类型的htmlspecialchars输入? 还是应该始终使用它来清理输入数据? 还是有更好的“数据清理”功能? 假设这些值将存储在数据库中
例:
$userdata = array(
'username' => $_POST['username'],
'email' => $_POST['email'],
'password' => $_POST['password']
);
// register function defined in a class user accepts array as parameter
// register function hashes password before storage
$this->user->register($userdata);
我应该对这些数据应用htmlspecialchars吗?
顾名思义,当在HTML输出中输出字符串时,将调用htmlspecialchars
。 例如:
<input type="text" name="username" value="<?= htmlspecialchars($user->name) ?>" />
在其中调用该代码可确保将引号,尖括号等正确地编码为其相应的实体"
, <
, &
等
您不应在数据库数据上使用htmlspecialchars
。 在输出时(而不是在存储时)转义文本。
我将大部分时间使用htmlentities()
。
通常在显示数据时将它们应用于数据。
例如
您有$str = '<iframe src="http://someurl..." />';
如果在输出时使用htmlentities,则<和>将转换为html实体-&lt;。 和&gt;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.