你现在的位置:首页 > PHP网站建设知识库 > ZenCart > 正文

zencart屏蔽国内访客的简单方法

看到网络上有很多方法介绍如何屏蔽国内的访问者或者IP的方法,方法很多,但是简单有效的却很少见,最常见的就是说要安装什么什么插件,还有的就是说在.htaccess文件中添加屏蔽的IP范围。其实当你真正按这些方法去做的时候发现确实是很费解。一般的人可能还不一定就看得懂。再说了如果屏蔽了国内的IP,那我们访问的时候也比较麻烦,可能还要通过代理才可以访问。而如果国内用户通过代理来访问,那就达不到我们的屏蔽目的了。针对这个问题,我琢磨了一下,做了一个简单的程序,该程序可以使别人无法访问我们的网站,而我们自己又不需要代理也可以访问。代码如下 
 
  require('includes/application_top.php'); 
if(isset($_GET['admin']) || isset($_SESSION['admin'])){ 
   if(empty($_SESSION['admin'])) 
     $_SESSION['admin']='admin'; 
}else { 
    if(preg_match("/zh-cn/is",$_SERVER['HTTP_ACCEPT_LANGUAGE'])){ 
      header("HTTP/1.1 404 Not Found"); 
      header("Status: 404 Not Found"); 
      exit(); 
    } 

简单的解释一下这段代码的意思。添加这段代码后,中文操作系统的用户都无法访问您的zen cart网店了(您除外)。但是如果国内用户使用的是英文操作系统也可以访问,不过国内使用英文操作系统的毕竟是很少的。而我们屏蔽的用户就是那些不可能是我们的目标客户的用户。因为一般使用英文系统的都是老外的多,我们做外贸的就是针对老外的嘛。 

这段代码必须要放在根目录下的index.php文件,在 require('includes/application_top.php'); 之后,因为我们要读取和设置SESSION,而zen cart的SESSION读取方式跟正常的读取方式不一样,所以要先加载这个文件.如果国内的用户访问的话,将无法访问,服务器会返回404错误。但是我们要访问的话就得注意了。因为这里设置了一个访问变量,admin,这个变量可以随便设置,只要别人不容易猜到的就可以了。而$_SESSION['admin']='ebluer';这里设置变量的值可以设置成随便一个字符串,因为接下来用不到这个变量,使用无关紧要。我们自己要访问的话就要这样来访问:你的域名/index.php?admin 这样正常访问之后,接下来就可以不需要添加这个变量也可以正常访问其他页面了。如果您关了浏览器后再访问可能就无法访问了,因为session失效了,只要再按照上面的做法访问就可以了。 

当然了,这里的设置方法对后台不起作用,因为后台一般我们都做好相应的安全措施,没有必要在多此一举。如果要设置的话,按我说的思路去做完全可以。