如果可能的话,我需要帮助重装东西。我的意思是我有这个查询,它在一个页面中提交,有这个配置文件注册,用户输入他的姓名,然后他继续在下一页输入更具体的细节。如果用户重新加载页面,即4次,那就是用户信息插入数据库的次数。
是否有任何重载功能来阻止提交查询? 我没有尝试任何东西,如果你会问我,因为我不知道如何开始。我唯一的线索是关于使用ajax,但是有没有php方法来做到这一点?
由于
答案 0 :(得分:5)
成功发布POST后,您应该遵循POST-Redirect-GET pattern并始终重定向:
如果没有看到您的代码,您将需要这样的重定向:
if($inserted){
header('Location: mypage.php?msg=reg_success');
exit;
}
然后,在mypage.php上,您可以这样:
if(isset($_GET['msg'])){
switch($_GET['msg']){
case 'reg_success':
echo 'Registration successful!';
break;
}
}
或者,您可以为成功消息创建一个数组:
$success_messages = array(
'reg_success' => 'Registration successful!',
'logout_success' => 'Logged out!'
);
然后在mypage.php上:
if(isset($_GET['msg']) && array_key_exists($_GET['msg'], $success_messages)){
$msg_index = $_GET['msg'];
echo $success_messages[$msg_index];
}
答案 1 :(得分:0)
您应该在会话中记录所有注册数据,并在用户单击“完成”按钮后写入一次。
然后重定向他并清除相关会话数据。
通过这种方式,您可以拥有任意数量的舞台页面,并且不会有任何重复。