Heim  >  Artikel  >  Backend-Entwicklung  >  php防止恶意刷新页面的代码

php防止恶意刷新页面的代码

WBOY
WBOYOriginal
2016-07-25 09:03:371024Durchsuche
  1. session_start();
  2. $k=$_GET['k'];
  3. $t=$_GET['t'];
  4. $allowTime = 1800;//防刷新时间
  5. $ip = get_client_ip();
  6. $allowT = md5($ip.$k.$t);
  7. if(!isset($_SESSION[$allowT]))
  8. {
  9. $refresh = true;
  10. $_SESSION[$allowT] = time();
  11. }elseif(time() - $_SESSION[$allowT]>$allowTime){
  12. $refresh = true;
  13. $_SESSION[$allowT] = time();
  14. }else{
  15. $refresh = false;
  16. }
  17. ?>
复制代码

ie6提交两次我也碰到过,大致是用图片代替submit时,图片上有个submit(),这样会提交两次,如果只是submit钮我没碰到过提交两次的情况。

现在整理一下: 方法基本上前面几位说得差不多 接收的页即2.php分为两部分,一部分处理提交过来的变量,一部分显示页面 处理变量完毕用header( "location: ".$_SERVER[ 'PHP_SELF '])跳转到自身页 本部分要做判断,如果没有post的变量就跳过。当然也可以跳到别的页面。 跳到别的页面返回时会有问题,建议做在一个php文件里。 如果上页穿过来得变量不符合要求可以强制返回

  1. <script><li>history.go(-1);<li></script>
复制代码

大体的思路。 2.php的流程

  1. if(isset($_POST))
  2. { 接收变量
  3. if(变量不符合要求)
  4. <script> history.go(-1); </script>
  5. else
  6. 操作数据
  7. ...
  8. if(操作完成)
  9. header( "location: ".$_SERVER[ 'PHP_SELF ']);
  10. }
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn