在刷新

时间:2018-03-28 23:21:35

标签: php html sql

我一直在研究允许用户插入数据的系统,这些数据将使用SQL查询传递到MySql数据库中,我注意到每次刷新页面时,都会将空数据插入到数据库中。连接,查询,PHP,HTML和其他所有代码都可以使用。重定向按预期工作,但我意识到我的系统需要稍微修正。我做错了吗?

<?php

    $con = mysqli_connect("localhost","root","","system");

    $error = 0;
    $errormessage = "";


    if( isset($_POST['submit'])){

    $name = $_POST['name']; 
    $email = $_GET['email'];
    $password = $_POST['password'];
    $password = hash('sha256' , $password);
    }else{
        $errormessage = $errormessage . "Please Fill all Fields";
        $error++;
    }

    if($errors == 0){
        $sql = "INSERT INTO User
        (name, email, password)
        VALUES
        ('$name','$email','$password')";

        mysqli_query($con, $sql) or die (mysqli_error($con));

        $errormessage = "Data Successfully Entered";

    }

    ?>

<!DOCTYPE html>
<html>
<body>
<header>
  <div style="background-color:black"><div style="text-align:center;">  <h1><style="color:Black;">Register</h1></div></div> </header>  
  <style>

input[type=text], select {
    width: 50%;
    padding: 12px 20px;
    margin: 8px 0;
    display: inline-block;
    border: 5px solid magenta;
    border: 5px solid magenta;
    border-radius: 4px;
    box-sizing: border-box;
    align:center;
}

input[type=button] {
    width: 50%;
    background-color: #4CAF50;
    color: white;
    padding: 14px 40px;
    margin: 8px 0;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    align:center;

}

input[type=password], select {
    width: 50%;
    padding: 12px 20px;
    margin: 8px 0;
    display: inline-block;
    border: 5px solid magenta;
    border: 5px solid magenta;
    border-radius: 4px;
    box-sizing: border-box;
align:center;
}

input[type=email], select {
    width: 50%;
    padding: 12px 20px;
    margin: 8px 0;
    display: inline-block;
    border: 5px solid magenta;
    border: 5px solid magenta;
    border-radius: 4px;
    box-sizing: border-box;
align:center;
}

input[type=submit] {
    width: 50%;
    background-color: #4CAF50;
    color: white;
    padding: 14px 20px;
    margin: 8px 0;
    border: none;
    border-radius: 4px;
    cursor: pointer;
align:center;

}

input[type=submit]:hover {
    background-color: green;
}

div {
    margin-left:auto;
    margin-right:auto;
    width: 90%;
    border: 5px solid lime;
    border-radius: 5px;
    background-color: #ECF0F1;
    padding: 20px;

}

</style>
</nav>
<div>
  <form method="Post">   

    <label for="name">
    <div style="text-align:center;"><input type= "button" id="RegisterPage" value = "Go to Register Page" onclick="document.location.href='example.php'">

    <input type= "button" id="LoginPage" value = "Go to Login Page" onclick="document.location.href='http://localhost/example2.php'"><p>Your Name</label><br>

    <input type="text" id="name" name="name" placeholder="Enter Name" required><br>
    <label for="email">E-Mail:</label><br>
    <input type="email" id="email" name="email" placeholder="Your e-mail" required><br>
    <label for="password">Password:</label><br>
    <input type="password" name="password" placeholder="At least 6 characters" required><br>
    <input type="submit" name = "submit" value="Create your Account ">
  </form></div>

  <footer><div style="background-color:aqua; border: 5px solid black;">

  </form></div>
</footer>
</nav>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

您可以使用insert语句执行ON DUPLICATE KEY UPDATE来更新数据库记录,而不是输入更多数据。另外,请确保在数据库中设置主键。

$sql = "INSERT INTO User
        (name, email, password)
        VALUES
        ('$name','$email','$password')
        ON DUPLICATE KEY UPDATE
        name = `$name`, email = `$email`, `$password`";