首页 > 开发 > PHP > 正文

PHP防止刷新重复提交页面的示例代码

2024-05-04 23:40:16
字体:
来源:转载
供稿:网友

我们可以利用 PHP 的 Session 来避免这一点,Session 保存在服务器端,在 PHP 过程中改变 Session 变量的值后,即保存在服务器端,下次访问这个变量时,得到是新赋的值,所以,可以用一个 Session 变量记录表单提交的次数,大于1时,就不再处理表单中的数据

PHP防止刷新重复提交页面的示例代码

作为phper,我们在开发和学习php过程中,难免要经常的接受处理表单数据,然而处理表单的时候总会有一个问题,困扰大家,刷新页面重复提交的问题。如何防止刷新页面重复提交呢?

PHP防止刷新重复提交,通过不断刷新(Refresh or Reload)表单提交页面,可以重复提交表单内容,可以利用 PHP 的 Session 来避免这一点,Session 保存在服务器端,在 PHP 过程中改变 Session 变量的值后,即保存在服务器端,下次访问这个变量时,得到是新赋的值,所以,可以用一个 Session 变量记录表单提交的次数,大于1时,就不再处理表单中的数据。

核心代码

以下为引用内容:

 

 
  1. if (isset($_POST['action']) && $_POST['action'] == 'submitted') {  
  2. session_start();  
  3. if (isset($_SESSION['submit_time']) && $_SESSION['submit_time']==0){  
  4. print '<pre>';  
  5. print_r($_POST);  
  6. print '<a href="'. $_SERVER['PHP_SELF'] .'">Please try again</a>';  
  7. print '</pre>';  
  8. $_SESSION['submit_time']=1;  
  9. echo $_SESSION['submit_time'];  
  10. unset($_SESSION['submit_time']); 
  11. else {  
  12. print '<pre>';  
  13. print_r($_POST);  
  14. echo "However you have submitted";  
  15. print '</pre>';  
  16. }  
  17. else {  
  18. session_start() or dir("session is not started");  
  19. $_SESSION['submit_time']= 0;  
  20. // isset($_SESSION['submit_time']) or die ("session var is not created");  
  21. // echo $_SESSION['submit_time'];  
  22. ?>  
  23. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">  
  24. Name: <input type="text" name="personal[name]"><br>  
  25. Email: <input type="text" name="personal[email]"><br>  
  26. Beer: <br>  
  27. <select multiple name="beer[]">  
  28. <option value="warthog">Warthog</option>  
  29. <option value="guinness">Guinness</option>  
  30. </select><br>  
  31. <input type="hidden" name="action" value="submitted">  
  32. <input type="submit" name="submit" value="submit me!">  
  33. </form>  
  34. <?php  
  35. }  
  36. ?> 


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表