2012-09-17 40 views
2

如果可能,我需要重新加载的帮助。我的意思是我有这个查询,它被提交到一个页面,有这个配置文件注册,用户输入他的名字和姓氏,然后他在下一页进入输入更具体的细节。如果用户重新加载该页面即4次,那就是用户信息被插入到数据库中的次数。查询的运行次数与刷新次数相同

是否有任何重新加载函数来阻止提交查询? 我还没有尝试过任何东西,如果你会问我,因为我不知道如何开始。我唯一的线索是关于使用Ajax,但有没有任何PHP的方式来做到这一点?

感谢

+0

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

回答

5

您应该遵循POST-Redirect-GET pattern和成功的POST之后始终重定向:

没有看到你的代码,你需要这样的重定向:

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]; 
} 
+2

这就是所谓的POST重定向消息GET设计模式:HTTP ://docforge.com/wiki/POST-Redirect-GET –

+0

补充说,我的回答,以防万一有人遇到问题。 –

+0

谢谢:),我明白了! – blerta

0

你应该记录会话的所有注册数据,并将它们写一次用户点击一些“完成”按钮后。

然后重定向他并清除相关的会话数据。

通过这种方式,你可以有任何数量的舞台页面,没有什么会被复制。