PHP防止刷新重复提交页面的示例代码
PHP防止刷新重复提交页面的示例代码
作为phper,我们在开发和学习php过程中,难免要经常的接受处理表单数据,然而处理表单的时候总会有一个问题,困扰大家,刷新页面重复提交的问题。如何防止刷新页面重复提交呢?
PHP防止刷新重复提交,通过不断刷新(RefreshorReload)表单提交页面,可以重复提交表单内容,可以利用PHP的Session来避免这一点,Session保存在服务器端,在PHP过程中改变Session变量的值后,即保存在服务器端,下次访问这个变量时,得到是新赋的值,所以,可以用一个Session变量记录表单提交的次数,大于1时,就不再处理表单中的数据。
核心代码
以下为引用内容:
if(isset($_POST['action'])&&$_POST['action']=='submitted'){ session_start(); if(isset($_SESSION['submit_time'])&&$_SESSION['submit_time']==0){ print'<pre>'; print_r($_POST); print'<ahref="'.$_SERVER['PHP_SELF'].'">Pleasetryagain</a>'; print'</pre>'; $_SESSION['submit_time']=1; echo$_SESSION['submit_time']; unset($_SESSION['submit_time']); }else{ print'<pre>'; print_r($_POST); echo"Howeveryouhavesubmitted"; print'</pre>'; } }else{ session_start()ordir("sessionisnotstarted"); $_SESSION['submit_time']=0; //isset($_SESSION['submit_time'])ordie("sessionvarisnotcreated"); //echo$_SESSION['submit_time']; ?> <formaction="<?phpecho$_SERVER['PHP_SELF'];?>"method="POST"> Name:<inputtype="text"name="personal[name]"><br> Email:<inputtype="text"name="personal[email]"><br> Beer:<br> <selectmultiplename="beer[]"> <optionvalue="warthog">Warthog</option> <optionvalue="guinness">Guinness</option> </select><br> <inputtype="hidden"name="action"value="submitted"> <inputtype="submit"name="submit"value="submitme!"> </form> <?php } ?>