防止恶意刷新和刷票的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程序设计有所帮助。