如何在PHP中利用会话防止表单重复提交

  介绍

这篇文章将为大家详细讲解有关如何在PHP中利用会话防止表单重复提交,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<>强,指数。php

当前表单页面is_submit设为0

 SESSION_START ();
  $ _SESSION [& # 39; is_submit& # 39;]=0;
  & lt;形式id=皉eg"action=皃ost.php"方法=皃ost"比;
  & lt; p>用户名:& lt;输入类型=皌ext"类=癷nput"name=皍sername"id=皍ser"祝辞& lt;/p>
  & lt; p>密和,码:& lt;输入类型=皃assword"类=癷nput"name=皃assword"id=皃ass"祝辞& lt;/p>
  & lt; p>电子邮件:& lt;输入类型=皌ext"类=癷nput"name=癳mail"id=癳mail"祝辞& lt;/p>
  & lt; p> & lt;输入类型=皊ubmit"name=皊ubmit"类=癰tn"值=https://www.yisu.com/zixun/碧峤蛔⒉?/> 

  

, post.php

若是提交表单了,设当前& # 39;is_submit为1,若是刷新职位。其他php,那么将执行代码

SESSION_START ();   如果(收取($ _POST[& # 39;提交# 39;])){   if ($ _SESSION [& # 39; is_submit& # 39;]==& # 39; 0 & # 39;) {   $ _SESSION [& # 39; is_submit& # 39;]=& # 39; 1 & # 39;;   回声“代码块,要做的事,代码……& lt;> & lt;及# 63;php/*   * php中如何防止表单的重复提交   */session_start ();   如果(空($ _SESSION [& # 39; IP # 39;])){//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库   $ _SESSION [& # 39; ip # 39;]=$ _SERVER [& # 39; REMOTE_ADDR& # 39;];//第一次写入,为后面刷新或后退的判断做个铺垫//...........//写入数据库操作   其他}{//已经有第一次写入后的操作,也就不再写入数据库   回声& # 39;请不要再次刷新和后退& # 39;;//写一些已经写入的提示或其它东西   }   ,# 63;在

具体原理

会话范围变量令牌来防止。

1。开启会话:

<代码> session_start();

2。如果有表单提交

,代码如下复制代码

<代码>如果(收取(令牌)美元)

标记以隐藏的形式包含在形式当中。

,代码如下复制代码

& lt;输入类型=癶idden"name=皌oken"值=https://www.yisu.com/zixun/?& # 63; php echo $令牌;& # 63;> "/>

, 3。如果是重复提交表单

,代码如下

 if ($ _SESSION [“token"] !=$令牌){//不让重复提交,在此处理//标题(“位置:“。$ _SERVER [& # 39; PHP_SELF& # 39;]);
  其他}{//正常的表单提交,在此处理//回声“已提交“;
  }

4。设置的令牌值

,代码如下

 $牌=mt_rand (0, 1000000);
  $ _SESSION[& # 39;标记# 39;]=美元令牌;

关于如何在PHP中利用会话防止表单重复提交就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

如何在PHP中利用会话防止表单重复提交