# Zen cart屏蔽国内访客的简单方法

**URL:** <https://www.isharkfly.com/t/zen-cart/3850>\
**Category:** PHP\
**Created:** [August 6, 2012, 4:41am UTC](https://www.isharkfly.com/t/zen-cart/3850 "2012-08-06T04:41:06Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [August 6, 2012, 4:41am UTC](https://www.isharkfly.com/t/zen-cart/3850/1 "2012-08-06T04:41:06Z")

</div>

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

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