我正在使用准备好的语句来存储、检索和更新数据库中的数据或从数据库中更新数据。如果我使用准备好的语句,是否需要使用 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()?