从Html表格中记录sql表格的问题
我创建了一个非常基本的html注册页面,需要用户输入他们的名字,姓氏,电子邮件和密码。然而,只有名字和姓氏被记录在phpmyadmin的数据库中,并且电子邮件和密码显示为空白。我已经尝试删除并再次添加表和列,没有任何运气,我已经改变了变量名称,也没有运气。不太确定该做什么。从Html表格中记录sql表格的问题
PHP代码
<?php
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
//Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//echo "Connected successfully";
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$password_ = $_POST['password_'];
if (isset($_POST['register'])) {
register($first_name,$last_name,$_email,$password,$conn);
}
$conn->close();
function register($first_name,$last_name,$email,$password,$conn) {
// echo $first_name . " " . $last_name . " " . $student_id . " " . $email;
$sql = "INSERT INTO `register` (`first_name`, `last_name`, `email`, `password_`) VALUES ('$first_name', '$last_name', '$email', '$password_')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>
HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Case</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
<form role="form" action="register.php" method="POST">
<div class="form-group">
<label>First Name:</label>
<input type="text" class="form-control" id="first_name" name="first_name"required>
</div>
<div class="form-group">
<label>Last Name:</label>
<input type="text" class="form-control" id="last_name" name="last_name"required>
</div>
<div class="form-group">
<label>Email address:</label>
<input type="varchar" class="form-control" name="e_mail" id="email"required>
</div>
<div class="form-group">
<label>Password:</label>
<input type="password" class="form-control" id="password" name="password"required>
</div>
<div class="form-group">
<label>Confirm Password:</label>
<input type="password" class="form-control" id="confirm_password"required >
<script>
var password = document.getElementById("password")
, confirm_password = document.getElementById("confirm_password");
function validatePassword(){
if(password.value != confirm_password.value) {
confirm_password.setCustomValidity("Passwords Don't Match");
} else {
confirm_password.setCustomValidity('');
}
}
password.onchange = validatePassword;
confirm_password.onkeyup = validatePassword;
</script>
</div>
<button type="submit" class="btn btn-default" name="register">Register</button>
</form>
</body>
</html>
它看起来像我在php注册代码中缺少一个下划线,它声明了该函数。我已经添加了它,现在我的代码似乎工作,感谢所有的反馈!
为了抢_POST变量,输入表单s必须有名称属性。对于您的电子邮件表单,您只指定了一个ID并没有名字。回去并添加名称='电子邮件'属性,它应该工作。密码相同。
好吧,让我试试!谢谢! – BRUCEWAYNE365
我已经尝试过它,但它仍然无法正常工作。但是谢谢你! – BRUCEWAYNE365
哦!你能发布你的更新代码吗? – Oliwol
你应该在“required”之前有一个空格。另外,请使用预先准备的语句。您的代码需要SQL注入。 –
您是否收到任何错误消息? PHP错误是否打开? –
在获得密码值的行中,拼写错误。密码_而不是密码。 –