我的PHP出现了一个错误

我的PHP出现了一个错误,php,html,sql,database,forms,Php,Html,Sql,Database,Forms,当我在我的表格上注册时,我得到了这个错误。任何帮助都会很好 错误: Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/u378761662/public_html/action.php on line 3 我的PHP: <?php $con=mysqli_connect("myhost.com","user","password","d

当我在我的表格上注册时,我得到了这个错误。任何帮助都会很好

错误:

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or 
T_NUM_STRING in /home/u378761662/public_html/action.php on line 3
我的PHP:

<?php
$con=mysqli_connect("myhost.com","user","password","db");
$sql="INSERT INTO users values ($_POST["username"], $_POST["pwd"], $_POST["email"])";
if (mysqli_query($con,$sql)) {
echo "User added!";
}

这是一个引用问题:

$sql="INSERT INTO users values ($_POST['username'], $_POST['pwd'], $_POST['email'])";

原始的
导致了解析器错误。此外,正如@johncode指出的,这是“完全开放的。”

这是一个引用问题:

$sql="INSERT INTO users values ($_POST['username'], $_POST['pwd'], $_POST['email'])";

原始的
导致解析器错误。此外,正如@johncode所指出的,这是“完全开放的。”

这是一个引用问题:

$sql="INSERT INTO users values ($_POST['username'], $_POST['pwd'], $_POST['email'])";

原始的
导致了解析器错误。此外,正如@johncode指出的,这是“完全开放的。”

这是一个引用问题:

$sql="INSERT INTO users values ($_POST['username'], $_POST['pwd'], $_POST['email'])";

原始的
导致解析器错误。此外,正如@johncode所指出的,这是“完全开放的。”

您应该养成习惯,对要包含在SQL查询中的动态值使用查询参数。这有助于避免对引号的混淆,并有助于避免安全漏洞

这也很容易

$sql="INSERT INTO users values (?, ?, ?)";
if ($stmt = mysqli_prepare($con,$sql)) {
  mysqli_stmt_bind_param($stmt, "sss", 
    $_POST["username"], $_POST["pwd"], $_POST["Email"]);
  if (mysqli_stmt_execute($stmt)) {
    echo "User added!";
  }
}

PS:

您应该养成习惯,对要包含在SQL查询中的动态值使用查询参数。这有助于避免对引号的混淆,并有助于避免安全漏洞

这也很容易

$sql="INSERT INTO users values (?, ?, ?)";
if ($stmt = mysqli_prepare($con,$sql)) {
  mysqli_stmt_bind_param($stmt, "sss", 
    $_POST["username"], $_POST["pwd"], $_POST["Email"]);
  if (mysqli_stmt_execute($stmt)) {
    echo "User added!";
  }
}

PS:

您应该养成习惯,对要包含在SQL查询中的动态值使用查询参数。这有助于避免对引号的混淆,并有助于避免安全漏洞

这也很容易

$sql="INSERT INTO users values (?, ?, ?)";
if ($stmt = mysqli_prepare($con,$sql)) {
  mysqli_stmt_bind_param($stmt, "sss", 
    $_POST["username"], $_POST["pwd"], $_POST["Email"]);
  if (mysqli_stmt_execute($stmt)) {
    echo "User added!";
  }
}

PS:

您应该养成习惯,对要包含在SQL查询中的动态值使用查询参数。这有助于避免对引号的混淆,并有助于避免安全漏洞

这也很容易

$sql="INSERT INTO users values (?, ?, ?)";
if ($stmt = mysqli_prepare($con,$sql)) {
  mysqli_stmt_bind_param($stmt, "sss", 
    $_POST["username"], $_POST["pwd"], $_POST["Email"]);
  if (mysqli_stmt_execute($stmt)) {
    echo "User added!";
  }
}

PS:

警告:您仍然容易受到攻击。查看Bill Karwin的答案,了解您的问题的解决方案,以及防止自己受到此类攻击的方法

正如错误所说,请查看第3行,您的报价是错误的:

$sql="INSERT INTO users values (" . $_POST["username"] . ", " . $_POST["pwd"] . ", " . $_POST["email"] . ")";

警告:您仍然容易受到攻击。查看Bill Karwin的答案,了解您的问题的解决方案,以及防止自己受到此类攻击的方法

正如错误所说,请查看第3行,您的报价是错误的:

$sql="INSERT INTO users values (" . $_POST["username"] . ", " . $_POST["pwd"] . ", " . $_POST["email"] . ")";

警告:您仍然容易受到攻击。查看Bill Karwin的答案,了解您的问题的解决方案,以及防止自己受到此类攻击的方法

正如错误所说,请查看第3行,您的报价是错误的:

$sql="INSERT INTO users values (" . $_POST["username"] . ", " . $_POST["pwd"] . ", " . $_POST["email"] . ")";

警告:您仍然容易受到攻击。查看Bill Karwin的答案,了解您的问题的解决方案,以及防止自己受到此类攻击的方法

正如错误所说,请查看第3行,您的报价是错误的:

$sql="INSERT INTO users values (" . $_POST["username"] . ", " . $_POST["pwd"] . ", " . $_POST["email"] . ")";


仅供参考,您也非常开放,您需要过滤输入。您存储值的方式不安全。只需查看您表单中的电子邮件输入字段名称为“email”,并且您正在尝试以“email”的形式获取供参考,你也对你需要过滤的输入敞开了大门。你存储这些值的方式不安全。只要看看你的表单,电子邮件的输入字段名是“email”,你试图以“email”的形式获取,以供参考,你也对你需要过滤的输入敞开了大门。你存储这些值的方式不安全。只要看看你的表单,电子邮件的输入字段名是“email”,你试图以“email”的形式获取,以供参考,您还可以对输入进行筛选。您存储值的方式不安全。只需查看您表单中的电子邮件输入字段名为“email”,您正在尝试以“email”的形式获取。谢谢您的帮助!现在我在注册时没有收到错误,但是插入表单的内容不会显示在数据库中。有什么建议吗?没关系,我算出来了。比尔,你有没有看到输入字段名是“Email”,而你得到的是“Email”@amarjitsngh,我刚刚注意到了这一点。谢谢@谢谢,我已经编辑了上面的内容。谢谢你的帮助!现在我在注册时没有收到错误,但是插入表单的内容不会显示在数据库中。有什么建议吗?没关系,我算出来了。比尔,你有没有看到输入字段名是“Email”,而你得到的是“Email”@amarjitsngh,我刚刚注意到了这一点。谢谢@谢谢,我已经编辑了上面的内容。谢谢你的帮助!现在我在注册时没有收到错误,但是插入表单的内容不会显示在数据库中。有什么建议吗?没关系,我算出来了。比尔,你有没有看到输入字段名是“Email”,而你得到的是“Email”@amarjitsngh,我刚刚注意到了这一点。谢谢@谢谢,我已经编辑了上面的内容。谢谢你的帮助!现在我在注册时没有收到错误,但是插入表单的内容不会显示在数据库中。有什么建议吗?没关系,我算出来了。比尔,你有没有看到输入字段名是“Email”,而你得到的是“Email”@amarjitsngh,我刚刚注意到了这一点。谢谢@谢谢,我已经编辑了上面的内容。