Javascript 使用$cleanName,它正在工作,但$cleanComment不工作
此问题已解决 我使用$cleanName=addslashes($name);在名称字段中的撇号处加斜杠。但是,当我尝试使用$cleanComment=addslashes($comment)时;它不起作用,而是复制项目——一个没有撇号,另一个有撇号。MySQL不接受撇号。我不知道为什么它不起作用,有人能给我指出正确的方向吗 我在表单代码中也有这个Javascript 使用$cleanName,它正在工作,但$cleanComment不工作,javascript,php,Javascript,Php,此问题已解决 我使用$cleanName=addslashes($name);在名称字段中的撇号处加斜杠。但是,当我尝试使用$cleanComment=addslashes($comment)时;它不起作用,而是复制项目——一个没有撇号,另一个有撇号。MySQL不接受撇号。我不知道为什么它不起作用,有人能给我指出正确的方向吗 我在表单代码中也有这个 document.getElementById('name').onkeypress = function () { if (event.keyCo
document.getElementById('name').onkeypress = function () {
if (event.keyCode === 39) { // apostrophe
// prevent the keypress
return false;
}
};
这是PHP代码
$name = $_POST['name'];
$email = $_POST['email'];
$comment = $_POST['comment'];
$confirm = $_POST['confirm'];
$cleanName = addslashes($name);
$cleanComment = addslashes($comment);
$sql = "INSERT INTO contact (name, email, commtype, comment, confirm)
VALUES ('$cleanName', '$_POST[email]', '$_POST[commtype]','$_POST
[comment]','$cleanComment')";
谢谢你的帮助 发布后,我注意到我有两次“评论”,这是导致错误的原因 “$”发布[评论],“$cleanComment”)
删除了“$\u POST[comment]”在SQL语句中直接使用用户输入是一个主要的安全风险。我建议使用预先准备好的语句。否则,您最终会遇到一个小的bobby tables问题。请注意,这可能是重复的,因为您有这样一个“
”$\u POST[comment]”,“$cleanComment”
,您将注释放了两次。另外”MySQL不接受撇号“是的,你只需要以正确的方式传递数据,你不需要任何咒语或字符串中的任何东西,如果你只需要学习如何准备你的语句,只需构建语句,绑定值并执行,不必大惊小怪,不必担心,穆西在我发布后就注意到了重复的注释。谢谢谢谢大家的帮助。@Derek谢谢我是PHP新手,没有意识到安全风险。我将研究准备好的声明。谢谢你的提醒。现在投票按钮下面应该有一个复选标记,你可以click@Derek它将不允许我在接下来的2天内添加复选标记。我将在周三批准它。@Derek用准备好的语句,//prepare and bind$stmt=$conn->prepare(“插入联系人(姓名、电子邮件、通讯类型、评论、确认)值(?,,,,,,?)”$stmt->bind_参数(“s”、$name、$email、$commtype、$comment、$confirm)代码>我正在获取-错误是致命错误:对第23行/sys/cuc2.php中的非对象调用成员函数bind_param()。网上的一切都表明这是正确的。有什么想法吗?$conn
可能不正确,请在要点中发布您的代码