从 Html Forms 在 sql 表中记录信息的问题
Posted
技术标签:
【中文标题】从 Html Forms 在 sql 表中记录信息的问题【英文标题】:Trouble with recording information in sql tables from Html Forms 【发布时间】:2017-10-05 19:31:14 【问题描述】:我创建了一个非常基本的 html 注册页面,需要用户输入他们的名字、姓氏、电子邮件和密码。然而,只有名字和姓氏被记录在 phpmyadmin 的数据库中,并且电子邮件和密码显示为空白 cloumns。我试图再次删除和添加表和列,但没有任何运气,我更改了变量名,也没有运气。不太确定该怎么做。
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>
【问题讨论】:
您应该在“必需”之前有一个空格。另外,请使用准备好的语句。您的代码受到 SQL 注入的影响。 您是否收到任何错误消息?是否开启了 PHP 错误? 在您获取密码值的行中,它拼写错误。密码_而不是密码。 好,我换个试试! 不走运,它还是空的。 【参考方案1】:为了获取 _POST 变量,您的输入表单必须具有 name 属性。对于您的电子邮件表单,您只指定了一个 ID,没有指定名称。返回并添加 name='email' 属性,它应该可以工作。密码也一样。
【讨论】:
我试过了,还是不行。不过谢谢!【参考方案2】:看起来我在声明函数的 php 注册代码中缺少下划线。我已经添加了它,现在我的代码似乎可以工作了,感谢所有反馈!
【讨论】:
以上是关于从 Html Forms 在 sql 表中记录信息的问题的主要内容,如果未能解决你的问题,请参考以下文章