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