使用PHP在数据库中插入信息

时间:2018-04-27 08:22:43

标签: php css sql database html5

我是初学者,我正在尝试学习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>

3 个答案:

答案 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>