我在这里搜索过,无法找到解决方案让我的代码工作,我正在尝试为成员创建一个简单的注册系统加入我的网站,但我无法看到我的PHP代码要发送到我已设置的数据库,这里是代码。
<?php require 'lpgamers/connections/connect.php'; ?>
<?php
if(isset($_POST['Register'])) {
session_start();
$FName = $_POST['First_Name'];
$LName = $_POST['Last_Name'];
$Email = $_POST['Email'];
$PW = $_POST['Password'];
$sql = $con->query("INSERT INTO lpg-user-db (Fname, Lname, Email, Password)Values('{$FName}', '{$LName}', '{$Email}', '{$PW}')");
}
?>
<div class="rightbody">
<form id="registerform" name="registerform" method="post">
<div class="formelement">
<input name="First_Name" type="text" required class="tfield" id="First_Name" placeholder="First Name">
</div>
<div class="formelement">
<input name="Last_Name" type="text" required class="tfield" id="Last_Name" placeholder="Last Name">
</div>
<div class="formelement">
<input name="Email" type="email" required class="tfield" id="Email" placeholder="Email">
</div>
<div class="formelement">
<input name="Password" type="password" required class="tfield" id="Password" placeholder="Password">
</div>
<div class="formelement">
<input name="Register" type="submit" class="button" id="Register" value="Register">
</div>
</form>
我还有一个需要的连接文件,我有这个设置,这确实连接到我的数据库
<?php
$con = mysqli_connect("localhost", "root", "", "lpgamers-user-db");
if (mysqli_connect_errno()) {
printf('Connect failed: %s\n', mysqli_connect_error());
exit();
}
?>
我在这里做错了还是这只是一个数据库问题,我现在正在使用wamp服务器进行测试?
先谢谢Rob。
答案 0 :(得分:4)
mysqli_error($con)
应该为此抛出错误,但您没有检查错误。
中的
lpg-user-db
表格
INSERT INTO lpg-user-db
包含连字符,MySQL正在将其解释为lpg MINUS user MINUS db
,认为您希望它进行数学运算。
表名需要在其周围打勾:
INSERT INTO `lpg-user-db`
要么这样做,要么用下划线替换它们并重命名:
INSERT INTO lpg_user_db
参考文献:
旁注:如果您的表格中有任何限制,mysqli_error($con)
会通知您。
如果您尝试输入的数据包含MySQL会抱怨的字符,例如John's Bar & Grill
,那么您将需要转义数据;无论如何你应该做的事情。
$FName = mysqli_real_escape_string($con, $_POST['First_Name']);
并为其他POST阵列做同样的事情。
您也可以使用SQL注入,使用预准备语句。
<强>密码强>
我还注意到您可能以纯文本格式存储密码。不建议这样做。
使用以下其中一项:
crypt()
bcrypt()
scrypt()
password_hash()
功能。其他链接: