介绍
本篇文章为大家展示了怎么在php中利用会话禁止页面重复刷新,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
如何防止页面重复刷新,在php环境下可以利用会话来轻松实现。
b。php的代码
& lt; php ?//只能通过发布方式访问, _SERVER if ([& # 39; REQUEST_METHOD& # 39;],==, & # 39;得到# 39;), {头(& # 39;HTTP/1.1, 404, Not 发现# 39;);,死(& # 39;亲,页面不存在& # 39;);}, session_start (),, $ fs1=$ _POST[& # 39;一个# 39;];, $ fs2=$ _POST [& # 39; b # 39;];,//防刷新时间,单位为秒, 30 $ allowTime =,,,//读取访客ip,以便于针对ip限制刷新,/*获取真实ip开始*/, if (!大敌;function_exists (& # 39; GetIP& # 39;)), {, function GetIP (), {, static ip 美元;=,零,, if (ip 美元;!==,NULL), {, return 知识产权;美元, }, if (收取($ _SERVER)), {, _SERVER if (收取([& # 39;HTTP_X_FORWARDED_FOR& # 39;])), {, 时间=美元arr 爆炸(& # 39;& # 39;,$ _SERVER [& # 39; HTTP_X_FORWARDED_FOR& # 39;]),,/*,取X-Forwarded-For中第x个非未知的有效IP字符?,*/, foreach (arr 美元;as  xip美元), {, xip 美元;=,修剪(xip美元),, if (xip 美元;!=,& # 39;未知# 39;), {, $ ip =时间xip美元;大敌;; 休息,, }, }, }, _SERVER elseif (收取([& # 39;HTTP_CLIENT_IP& # 39;])), {, _SERVER ip 美元;=,[& # 39;HTTP_CLIENT_IP& # 39;];, }, else {, _SERVER if (收取([& # 39;REMOTE_ADDR& # 39;])), {, _SERVER ip 美元;=,[& # 39;REMOTE_ADDR& # 39;];, }, else {, ip 美元;=,& # 39;0.0.0.0 # 39;,, }, }, }, else {, if (getenv (& # 39; HTTP_X_FORWARDED_FOR& # 39;)), {, $ ip =, getenv (& # 39; HTTP_X_FORWARDED_FOR& # 39;),, }, elseif (getenv (& # 39; HTTP_CLIENT_IP& # 39;)), {, $ ip =, getenv (& # 39; HTTP_CLIENT_IP& # 39;),, }, else {, $ ip =, getenv (& # 39; REMOTE_ADDR& # 39;),, }, }, preg_match (“/[\ d \] {7、15}/,,, ip,美元,美元onlineip),, ip 美元;=,!,空($ onlineip [0]), ?, onlineip美元[0],:,& # 39;0.0.0.0 # 39;,, return 知识产权;美元, }, },/*获取真实ip结束*/, reip 美元;=,GetIP (),,//相关参数md5加密, $ allowT =, md5 (reip。fs1美元。fs2美元),, 如果(!收取($ _SESSION [$ allowT])) {, $ _SESSION [allowT美元],=,时间(),, }, else 如果(时间(),安康;$ _SESSION [$ allowT]——在allowTime美元){, $ _SESSION [allowT美元],=,时间(),, },//如果刷新过快,则直接给出404头头以及提示, else {头(& # 39;HTTP/1.1, 404, Not 发现# 39;);,死(& # 39;来自& # 39;$ ip强生# 39;的亲,您刷新过快了& # 39;);}, ?在
代码很简单,无非是把ip、以及通过帖子方式提交到需要防刷新页面的数据经过md5加密后写入会话中,再通过存储的会话来判断刷新时间间隔从而决定是否允许刷新。需要说明的是“$ fs1=$ _POST[& # 39;一个# 39;);“,“$ fs1=$ _POST[& # 39;一个# 39;);“两个参数是指其他页面通过发布方式提交到需要防刷新页的参数。之所以除了ip之外还要加这些参数的原因是为了区别不同的帖子结果。(实际上所谓的防刷新也就是防止某一页面被反复提交。)
更具体的说,比如上述代码放在b.php页面的开的头,我们在。html页面有一个如下表单:
代码:
& lt; ! DOCTYPE>, & lt; html>, & lt; head>, & lt; meta  http-equiv=癈ontent-Type",内容=皌ext/html;, charset=utf-8",/祝辞, & lt; title> b.html, 时间/head> & lt; & lt; body>, & lt; form  action=癰.php",方法=皃ost",在, & lt; input 类型=癶idden", id=癮", name=癮" https://www.yisu.com/zixun/, value=" "/> <按钮名称=" " type="提交">提交> 按钮> 形式 身体>