在准备好的语句中使用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