- 在
PHP
中经常看到如下代码 if
(!defined
(‘IN_ECS
’))- {
-
die
(‘Hacking
attempt
’); - }
- 实现的原因以及原理如下:
-
ecshop
里的有些.php
页是不需要用户通过url
直接访问的,用来被其它页调用的,例如/includes
/init
.php
,就不需要直接访问,通过url
访问你的网址/includes
/init
.php
是无意义的,所以我们在可以直接方问的php
里加上define
(‘IN_ECS
’,true
); - 例如在
index
.php
中有如下代码,一开头就设置IN_ECS
的值为true
然后才去加载init
.php
这样init
.php
文件中IN_ECS
的值就为true
,这时候引入cls_mysql
.php
也可以引入,因为此时IN_ECS
的值也是为true
define
(‘IN_ECS
’,true
);require
(dirname
(__FILE__
) . ‘/includes
/init
.php
’);- 在页面直接访问
- 出现这样的结果
- 在不能直接访问的
php
里加上 if
(!defined
(‘IN_ECS
’))- {
-
die
(‘Hacking
attempt
’); - }
- 这样当直接访问
init
.php
里就会显不 Hacking
attempt
- 从页起到禁止访问的目的,而其它页面在调用
init
.php
时是正常的 - 这样做更安全
- 这也是一种设计思想,防止其它文件不正常调用或者防止前台直接访问文件。
转载请注明:汇站网 » ECshop
中 defined
(‘IN_ECS
’)的实现原理