Php 重新加载时,将显示警报消息并将数据插入数据库
这是我的php文件,我正在成功地将数据插入数据库,一旦单击add按钮,数据就会被插入,并且在插入时会显示一条警告消息“New user added”(新用户已添加),但问题是,在插入数据后,每次单击reload page(重新加载页面),它都会将以前的数据插入数据库并显示消息“新增用户” 我正在尝试插入到数据库中,一旦它被插入,就会显示警告消息“New user added”(新用户已添加)并清除所有文本框。这就是我正在尝试做的Php 重新加载时,将显示警报消息并将数据插入数据库,php,Php,这是我的php文件,我正在成功地将数据插入数据库,一旦单击add按钮,数据就会被插入,并且在插入时会显示一条警告消息“New user added”(新用户已添加),但问题是,在插入数据后,每次单击reload page(重新加载页面),它都会将以前的数据插入数据库并显示消息“新增用户” 我正在尝试插入到数据库中,一旦它被插入,就会显示警告消息“New user added”(新用户已添加)并清除所有文本框。这就是我正在尝试做的 <?php require("../connect
<?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>
用户名
密码
确认密码
正如@webnovel所说,您必须先发布,然后重定向,然后转到另一个页面,以避免重新提交。
请看发生这种情况的原因是表单提交重复。当您刷新/重新加载页面时,您正在提交表单,这就是插入数据并收到该消息的原因 提交表单并插入数据库后,执行重定向:
header('Location: user.php?status=success');
在您的脚本中:
检查$\u GET变量以执行javascript消息
if(isset($_GET['status']) AND ($_GET['status'] == 'success')){
echo '<script type="text/javascript"> window.onload = function(){
alert("New user added");
}</script>';
}
if(设置($\u GET['status'])和($\u GET['status']=='success')){
echo'window.onload=函数(){
警报(“新增用户”);
}';
}
不要使用mysql_*函数,它们已被定价!如果重新加载(刷新),这是预期的。您正在将POST数据再次发送到脚本。您正在重新提交表单。您应该提交、处理POST,然后重定向到其他页面。*不推荐使用softwareDanger:您正在使用并且应该使用。您还易受现代API使您更容易使用的影响。您可以随时取消设置($\u POST['add'])添加到数据库后。我已尝试将标题重定向到同一页面,但它不会显示警报message@ShahilM你能把你根据这个答案所做的代码更改贴出来吗?