由于某些原因,addslashes 在将数据插入数据库时不添加斜线。我以为我使用的是正确的,但显然不是......当我提交带有单引号或双引号的数据时,它只是发送正确的字符串。关于如何使这项工作有什么想法吗?
代码
<?php
//include db connect
include ("db_con.php");
//start session
session_start();
//set variable names
$username = $_SESSION['username'];
$entry = addslashes($_POST['entry']);
$uri = $_SERVER['HTTP_REFERER'];
//send chat
$query = mysqli_query($con, "INSERT INTO chat (username, entry) VALUES
('".$username."', '".$entry."')");
if ($query) {
header('Location: '. $uri);
} else {
echo 'Chat entry failed for an unknown reason - Please go back and try again';
}
?>
addslashes()
用于转义字符串。如果你有代码:
$lastname = "O'Bama";
$query = "SELECT name FROM users WHERE lastname='$lastname'";
查询将产生错误,因为 Bama
将被视为 SQL 语句。为了防止这种情况,您可以使用 addslashes()
所以
echo addslashes($lastname); // returns O\'Bama
现在您可以毫无错误地执行查询,因为您的数据库会将值视为“O'Bama”。
我是一名优秀的程序员,十分优秀!