防止网页在刷新时重复提交的方法记得在哪里看到过,后来忘记了,按大概的意思我今天自己写了个,好像也不难 做法是这样的,首先在SESSION会话中定义一个变量refresh,使它在每次加载网页时自增1. CODE: [Copy to clipboard] <?php //...省去SESSION类实例化代码... if(!isset($_SESSION['refresh'])){ $sess->my_session_register("refresh"); $_SESSION['refresh'] = 1; } else { $_SESSION['refresh']++; } ?> 提交表单时,加入参数$_SESSION[’refresh’]: CODE: [Copy to clipboard] <form action="?action=blabla&refresh=".$_SESSION['refresh']." method=\"post\" name=\"abc\" /> 在处理表单的函数部分,加入一个条件,如果 $_GET[’refresh’]== $_SESSION[’refresh’] - 1,则继续。 比如: CODE: [Copy to clipboard] $refresh = isset($_GET['refresh']) ? $_GET['refresh'] : ""; if ( $action = "navtrans" && $_POST['edit'] == "true" && $refresh == $_SESSION['refresh'] - 1 ){ //处理$_POST变量............ } 这样在浏览器地址栏的refresh=后面的值在按刷新按钮的时候是不会变的,而加载一次网页 $_SESSION[’refresh’] 则会加1,在这种条件下,$_GET[’refresh’] 是不会等于 $_SESSION[’refresh’] - 1的,防刷功能成功实现。 |
|
来自: 竹林书屋@ > 《JavaScript》