以下是我的脚本,我用它来插入我的数据库。我没有使用stripslashes or mysqli_escape
,因为我读到当你使用预准备语句时我们不需要使用它。我面临的问题是,以下方法在安全性方面是好的,每当我插入特殊字符时,垃圾文本就像下面的例子一样存储在我的数据库中。请告诉我如何修改查询,以便在用户保存时存储值。谢谢,
You shouldn’t move them to the next level of delegation.
$storeit = $_POST['value'];
$stmt = $con->prepare("INSERT INTO db_table (thevalue) VALUES (?)");
$stmt->bind_param("s", $storeit); /// s means only string input is allowed
if ($stmt->execute())
{
echo "true";
}
else
echo "false".$stmt->error;
答案 0 :(得分:1)
你必须在连接后调用$con->set_charset()
,并传递网页的实际编码,即:
$con->set_charset('utf8');
如果您的网页正在发送utf-8作为内容字符集。
答案 1 :(得分:-1)
您的问题似乎与编码有关。
请确保您具有相同的编码:
关于输入数据,您可以检查和/或调整数据到您想要使用的任何字符集。您可以查看Multibyte String功能或iconv功能。