Home > php教程 > php手册 > php 解决表单重复提交实现方法介绍

php 解决表单重复提交实现方法介绍

WBOY
Release: 2016-05-25 16:40:07
Original
1328 people have browsed it

重复提交是我们开发中会常碰到的一个问题,除了我们使用js来防止表单的重复提交,同时还可以使用php来防止重复提交.

例1,代码如下:

<?php
/*
 * php中如何防止表单的重复提交
*/
session_start();
if (emptyempty($_SESSION[&#39;ip&#39;])) { //第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库
    //开源代码phprm.com
    $_SESSION[&#39;ip&#39;] = $_SERVER[&#39;REMOTE_ADDR&#39;]; //第一次写入,为后面刷新或后退的判断做个铺垫
    //...........//写入数据库操作
    
} else { //已经有第一次写入后的操作,也就不再写入数据库
    echo &#39;请不要再次刷新和后退&#39;; //写一些已经写入的提示或其它东西
    
}
?>
Copy after login

具体原理:session范围变量token来防止.

1.开启session:session_start();

2.如果有表单提交,代码如下:

if (isset($token))

token以hidden的形式包含在form当中,代码如下:

<input type="hidden" name="token" value="<?php echo $token; ?>" />
Copy after login

3.如果是重复提交表单,代码如下:

<?php
if ($_SESSION["token"] != $token) {
    // 不让重复提交,在此处理
    // header("location:".$_SERVER[&#39;PHP_SELF&#39;]);
    
} else {
    // 正常的表单提交,在此处理
    // echo "已提交";
    
}
?>
Copy after login

4.设置token值,代码如下:

<?php
$token = mt_rand(0, 1000000); . $_SESSION[&#39;token&#39;] = $token;
Copy after login


文章网址:

随意转载^^但请附上教程地址。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template