Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用$cleanName,它正在工作,但$cleanComment不工作_Javascript_Php - Fatal编程技术网

Javascript 使用$cleanName,它正在工作,但$cleanComment不工作

Javascript 使用$cleanName,它正在工作,但$cleanComment不工作,javascript,php,Javascript,Php,此问题已解决 我使用$cleanName=addslashes($name);在名称字段中的撇号处加斜杠。但是,当我尝试使用$cleanComment=addslashes($comment)时;它不起作用,而是复制项目——一个没有撇号,另一个有撇号。MySQL不接受撇号。我不知道为什么它不起作用,有人能给我指出正确的方向吗 我在表单代码中也有这个 document.getElementById('name').onkeypress = function () { if (event.keyCo

此问题已解决 我使用$cleanName=addslashes($name);在名称字段中的撇号处加斜杠。但是,当我尝试使用$cleanComment=addslashes($comment)时;它不起作用,而是复制项目——一个没有撇号,另一个有撇号。MySQL不接受撇号。我不知道为什么它不起作用,有人能给我指出正确的方向吗

我在表单代码中也有这个

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
可能不正确,请在要点中发布您的代码