gpt4 book ai didi

php - 允许将标点符号提交到 MySQL 数据库

转载 作者:行者123 更新时间:2023-11-29 07:50:08 25 4
gpt4 key购买 nike

我已经完成了所有设置,并且可以正常工作,但是当我点击提交时,我无法添加 ' 或任何其他标点符号,否则会出现 MySQL 语法错误。我想知道如何向表单的文本行添加标点符号。我已将其设置为 utf8_unicode_ci 在排序规则下,但我仍然收到语法错误。

文本区域是我希望能够提交任何标点符号或字符的地方。这是我所拥有的。

这是我正在使用的表格

print "<form method=post action=reply.php>";
print "<h3>Reply:</h3>";

print "<br><textarea name=reply_content textarea rows=4 cols=50></textarea>";
print "<input type=hidden name=reply_user value={$_SESSION['user_name']}>";
print "<input type=hidden name=topic_id value=$id>";
print "<br><input type=submit></form>";

这是reply.php的SQL

$reply_content=$_POST['reply_content'];
$reply_time=date('Y-m-d H:i:s');
$reply_user=$_POST['reply_user'];
$topic_id=$_POST['topic_id'];

mysql_query("INSERT INTO reply VALUES ('reply_id', '$reply_user', '$reply_content', '$reply_time', '$topic_id')") OR die(mysql_error());

print "<center><h1>Reply Posted Successfully</h1>";

我知道有办法做到这一点,但我不知道如何做。如果有人能帮助我,我将非常感激!

最佳答案

您需要做很多事情,但要专门添加带有单引号的值等,您需要做一些简单的事情,例如:

$reply_content = mysql_real_escape_string($_POST['reply_content']);

这将采用 $_POST['reply_content'] 并在必要时添加反斜杠,以便将其插入到 MySQL 中。如果您要向用户显示数据,请不要忘记反转该设置。您不希望他们在不期望的地方看到斜线。

此外,根据您的示例,您应该...

  1. 如果您必须使用 mysqli_,请将所有 mysql_* 函数替换为 mysqli_*(mysql_* 函数已弃用,并替换为 mysqli_* 对应函数)
  2. 清理用户的任何输入 - 不要相信他们发送给您的内容。 @Michael Berkowski 指向“How can I prevent SQL injection in PHP”的评论是一个很好的开始,“SQL Injection”是另一个

关于php - 允许将标点符号提交到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26705141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com