我一直试图让我的HTML表单提交到指定的数据库。我已经尝试了所有我知道的一切,但仍然没有结果,但似乎无法得到该错误。
HTML格式
<form action = "connect.php" method = "post">
<br>
<br>
<br>
<h5 style ="color:White;" style="font-family:verdana" align = "center"><font size = "2">
<fieldset >
<legend>Personal information:</legend>
First name: <br>
<input type = "text" name ="firstname">
<br>
Last name: <br>
<input type = "text" name ="lastname"><br>
Username: <br>
<input type = "text" name = "username"><br>
Password <br>
<input type = "password" name ="password"><br>
School <br>
<input type = "text" name ="school"><br>
Department <br>
<input type = "text" name ="department"><br>
Year Of Study <br>
<input type = "text" name ="studyYear"><br>
Email <br>
<input type = "text" name ="email"><br>
Phone number <br>
<input type = "text" name ="phoneNumber"><br><br>
Gender <br>
<input type = "radio" name = "gender" value ="male">Male<br>
<input type = "radio" name = "gender" value ="female">Female<br>
<input type = "radio" name = "gender" value ="male">Other<br>
<br><br>
<input type ="submit" value ="Insert">
</h5>
</fieldset>
</h5>
</form>
PHP CODE
<?php
// Connect to localhost
$connect = mysqli_connect('localhost', 'root', '', 'sigma');
if(!$connect) {
echo("Didn\'t work ". mysqli_error());
}
// Get values from the form
$ID = $_POST['UserID'];
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$username = $_POST['username'];
$password = $_POST['password'];
$school = $_POST['school'];
$dept = $_POST['department'];
$studyYear = $_POST['studyYear'];
$email = $_POST['email'];
$phone = $_POST['phoneNumber'];
// SQL query to insert the data collected from the form into the database.
$sql = mysqli_query ($connect, 'INSERT INTO users (firstname, lastname, username, password,
school, department, studyYear, email, phoneNumber)
VALUES ("'.$firstname.'", "'.$lastname.'", "'.$username.'","'.$password.'",
"'.$school.'", "'.$dept.'", "'.$studyYear.'", "'.$email.'", '.$phone.')');
if ($sql)
{
echo 'Inserted';
}
else
{
echo 'Not Inserted';
}
mysqli_close($connect);
?>
该查询应该为您工作,就像Shudhansh一样,但是我将INSERT查询用双引号引起来,并删除了每个变量之间的串联,并将它们分别包装在了自己的单引号中:
$sql = mysqli_query ($connect,
"INSERT INTO users (firstname, lastname, username, password,
school, department, studyYear, email, phoneNumber)
VALUES ('$firstname', '$lastname', '$username', '$password', '$school', '$dept', '$studyYear', '$email', '$phone')");
我在我的本地计算机上运行了它,并且运行正常。
另外,您的connect.php尝试从请求中获取$ _POST ['userID']',但您不会从表单中传递它,因此将其全部停止,您只需创建一个自动递增的ID为处理您的用户ID的主键。
如果以某种方式将其投入生产,出于明显的安全原因,我建议验证和清理数据并在密码上使用phps password_hashing函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句