我是初学者,我正在尝试学习PHP和SQL。我已经编写了下面的代码,所以我可以将数据插入到我的数据库中,但我不明白为什么它不起作用。它加载了所有内容,但是当我点击"注册"按钮,它什么都不做。有人可以帮我搞清楚吗?
<?php include 'config.php'; ?>
<?php
if(isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$query = "INSERT INTO users1(username,password) VALUES ('$username','$password')";
$result = mysqli_query($con,$query) or die ("problem inserting new product into database");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Sign Up</title>
<style>
button {
text-align:center;
color: gray;
}
</style>
</head>
<body>
<h2>Sign Up</h2>
<h3>Enter your data to register</h3>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST">
<label class="user-name">Username</label><input type="text" name="username" placeholder="Enter your username" autofocus required"><br><br>
<label class="pass-word"> Password: </label><input type="password" name="pass" class="info" placeholder="Enter your Password" required ><br><br>
<button class="lbutton" type="submit" value="Submit">Sign Up</button>
<p>Already registered? <a href="login2.php">Login</a></p>
</body>
</html>
答案 0 :(得分:3)
首先
如果表单将您重定向到同一页面,则可以将action
参数设为空:action=""
<强>其次强>
您检查变量$_POST['submit']
是否存在,但表单中的所有元素都没有名称submit
,因此它永远不会存在。 Html表单使用字段名称作为键将变量发送到数组$_POST
。如果没有给出名字,那就是一个数字。
怎么做
将name="submit"
添加到您的提交button
,这应该有效。
将密码name="pass"
中的name="password"
更改为input
,或将$_POST['password']
更改为$_POST['pass']
。
同时关闭您的表单(</form>
)。现代浏览器自动关闭它但仍然不正确。
其他提示
直接访问$_POST
不是一个好习惯。这是一个更好的解决方案:$username = filter_input(INPUT_POST, 'username')
而不是$username = $_POST['username']
在将变量插入SQL查询时使用filter_var函数也是一个好主意。
示例:$username = filter_var(FILTER_SANITIZE_STRING, $username)
答案 1 :(得分:2)
尝试关闭表单。
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"
method="POST">
<label class="user-name">Username</label><input type="text" name="username"
placeholder="Enter your username" autofocus required"><br><br>
<label class="pass-word"> Password: </label><input type="password"
name="pass" class="info" placeholder="Enter your Password" required ><br>
<br>
<button class="lbutton" type="submit" value="Submit">Sign Up</button>
<p>Keni nje adrese? <a href="login2.php">Futu</a></p>
</form>
答案 2 :(得分:2)
如果你这样做,提交按钮应该有一个名字,它将把它包含在帖子数组中。
<button class="lbutton" type="submit" name="submit" value="Submit">Sign Up</button>
在表单提交中,为具有有效名称属性的表单内的所有元素创建post数组。
您还需要关闭<form></form>