防止恶意刷新和刷票的PHP方法

本文介绍了利用PHP防止恶意刷新和刷票的方法,供大家参考,具体的实现方法如下:

一般来说,恶意刷新会不断刷新提交页面,导致大量无效数据。接下来,让我们总结一下PHP防止恶意刷新页面的方法。

防止恶意刷页的原则是:

需要在页面之间传递验证字符串,

当生成页面时,随机生成一个字符串,

在所有连接中作为一个必需参数传递。字符串同时保存在会话中。

在点连接或表单进入页面之后,判断会话中的验证代码是否与提交的用户相同。如果相同的应用,如果它是相同的,那么处理是不同的,那么它被认为是重复刷新。

在处理完成后,将生成生成新页的验证代码。

PHP实现代码如下所示:

复制代码代码如下:< PHP

session_start();

$ k = $ _get { k };

T =美元美元_get {不};

allowtime美元= 1800; / /防刷新时间

IP = get_client_ip(美元);

allowt = MD5(美元美元美元美元的IP。K T);

如果(!isset($ _session { $ allowt }))

{

$刷新=真;

_session美元{ $ allowt } =时间();

} elseif(时间(){ } _session美元美元美元allowt >> allowtime){

$刷新=真;

_session美元{ $ allowt } =时间();

其他{ }

刷新= false;

}

>

IE6提交两次,我也遇到了一个图片而不是提交提交。图片上有一个提交(提交)两次。如果我只提交按钮,我没有遇到提交两次的情况。现在整理一下:

这种方法基本上与前几次相同。

接收到的页面,2.php,分为两个部分,其中一部分处理提交的变量和一些页面显示。

治疗后的头(变地点。_server美元{ 'php_self ' })跳转到页面本身

如果没有跳转的变量被跳过,则需要判断此部分。当然,您也可以跳转到其他页面。

当您跳转到另一个页面时,有一个问题,建议将它放在PHP文件中。

如果上面的页面不需要满足要求,就可以强制返回。

只是说一般的想法,也许高的手不会遇到这样的问题,但不是每个人都是高手。

复制代码如下:如果(isset($ _post))

{

如果(变量不符合要求)



其他的

操作数据



如果(操作完成)

标题(位置。_server美元{ 'php_self});

}



<!——

Javascript:window.history.forward(1);





还可以使用cookie。

复制代码代码如下:< PHP

c_file美元=计数器。txt; / /文件名赋值给变量

如果(!file_exists($ c_file)) / /如果文件不存在则操作

{

$ myfile = fopen(c_file美元,W); / /创建文件

fwrite($ myfile,0); / / 0

Fclose($ myfile); / /关闭文件

}

t_num美元=文件($ c_file); / /读取文件中变量的内容

如果($ _cookie {日期}!=日期(y,m)判断cookie内容和当前日期是否一致

{

为t_num { 0 } + +; / /原始数据递增1

$ myfile = fopen(c_file美元,W); / /打开写文件

fwrite($美元来,t_num { 0 }); / /写新的价值

Fclose($ myfile); / /关闭文件

当前日期重写cookie的有效性,并将cookie设置为24小时

setcookie(日期

}

>

使用会话:

首页文件index.php代码:

复制代码代码如下:< PHP

session_start();

>







禁止通过会话刷新页面



<!——

{.Style1

字体大小:14px;

字体家族:中文字体;

字体粗细:粗体;

}

。方式2 {字体:中国琥珀}

-->







< PHP

使用文本存储的数据

如果($ _session {温度} = =){

如果(($ FP = fopen(反.txt

打开文件失败!;

}人{ $反= fgets($ FP,1024); / /读取数据文件

Fclose($ FP); / /关闭文本文件

计数器+ +;计数器/计数器增加1

$ FP = fopen(反.txt



作用是:将内容($ FP,$计数器); / /新的统计增加了1

Fclose($ FP);} / /关闭

从文本文件中读取统计数据

如果(($ FP = fopen(反.txt

打开文件失败!;

其他{ }

$反= fgets($ FP,1024);

Fclose($ FP);

数字计数器$计数器;

输出访问时间

_session {温度} = 1美元; / /登录后,_session美元{温度}的值不为空,将一个价值1美元_session {温度}

其他{ }



}

>





禁止通过会话刷新页面







< php如果(($ FP = fopen(反.txt

打开文件失败!;

其他{ }

$反= fgets($ FP,1024);

Fclose($ FP);

网页访问:;

输出访问时间

>

















其中:

的counter.txt文件在同一目录中的记录日志文件。

$反= fgets($ FP,1024);用于读取文件中的数值方法(包括少数点的值)

希望本文能对大家的PHP程序设计有所帮助。