当前位置:Gxlcms > php框架 > PHP防止刷新重复提交页面的示例代码

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

时间:2021-07-01 10:21:17 帮助过:9人阅读

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. ?>

人气教程排行