重新加载时,将显示警报消息,并将数据插入到数据库中


on reload the alert message displays and data gets inserted to database

这是我的php文件,我成功地将数据插入数据库,单击添加按钮后,将插入数据并在插入时显示一条警报消息"新用户已添加",但问题是在插入数据后,每次我单击重新加载页面时,它都会将以前的数据插入数据库并显示消息"添加了新用户"。

我正在尝试插入数据库,一旦插入,它应该显示警报消息"添加了新用户"并清除所有文本框。 这就是我要做的。

 <?php
    require("../connect.php");
    error_reporting(0);
    /*
    if(!(adminsessioncheck()))
    header('location:index.php'); */
    if(isset($_POST['add']))
    {
        $username=$_POST['username'];
        $password=$_POST['password'];
if($_POST['password'] !== $_POST['cpassword']) {
     echo("Password did not match! Try again. ");
} 
else {
    mysql_query("INSERT INTO users VALUES('','$username','$password')") or die(mysql_error());
    echo '<script type="text/javascript">  window.onload = function(){
  alert("New user added");
}</script>';
}
    }
?>

<form action="" method="post" >
     <table width="330" height="135" border="0" class="text">
<tr>
    <td><label>User Name</label></td>
    <td><input type="text" name="username" id="username" required></td> 
    </tr>
    <tr>
    <td><label>Password</label></td>
    <td><input type="password" id="password" name="password" required></td>
    </tr>
    <tr>
    <td><label>Confirm Password</label></td>
    <td><input type="password" id="cpassword" name="cpassword" required></td>
    </tr>
    <tr><td></td></tr>
    <tr><td></td></tr>
<tr><td></td><td align="center"><input type="submit" name="add" value="Add"></td></tr>
</table>
  </form>

正如@WebNovice所说,您必须发布然后重定向,然后转到其他页面以避免重新提交。看看帖子/重定向/获取

发生这种情况是因为重复提交表单。当您刷新/重新加载页面时,您将重新提交表单,这就是插入数据并收到该消息的原因。

http://en.wikipedia.org/wiki/Post/Redirect/Get

提交表单并插入数据库后,执行重定向:

header('Location: user.php?status=success');

再次在您的脚本中:

检查 $_GET 变量以执行 JavaScript 消息

if(isset($_GET['status']) AND ($_GET['status'] == 'success')){
    echo '<script type="text/javascript">  window.onload = function(){
  alert("New user added");
}</script>';
}