在准备好的语句中使用htmlspecialchars()或htmlentities()
我正在使用预准备语句来存储,检索和更新数据库中的数据。 如果我正在使用预准备语句,是否需要使用htmlspecialchars()或htmlentities()?
据我所知,你不需要在插入数据时使用htmlspecialchars(),它只关心输出的html ...
我有一种情况,我正在使用准备好的语句来存储来自注册表单的用户输入,如下所示:
$stmt = $conn2->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->bind_param('sss', $username, $email, $password);
$stmt->execute();
我有另一个脚本,它在登录时显示用户名和密码,并在屏幕上显示他们的用户名,如下所示:
$stmt = $conn2->prepare("SELECT username FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows == 1) {
$stmt->bind_result($name);
$stmt->fetch();
我还将用户名放在SESSION中,并如此回显会话:
echo $_SESSION['user']['username']
从这个例子中,我需要在显示用户名时使用htmlspecialchars()或htmlentities()吗? 这是什么意思输出HTML?
如果是这样,我会在哪里实现htmlspecialchars()或htmlentities()?
数据库不关心HTML。
如果您要将数据插入HTML文档,请在使用其中一个插入HTML文档之前(不要在插入数据库之前插入数据库,您可能需要重新使用原始数据用于其他目的)。
链接地址: http://www.djcxy.com/p/58063.html上一篇: The use of htmlspecialchars() or htmlentities() in prepared statements
下一篇: htmlspecialchars vs htmlentities when concerned with XSS