在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')的实现原理相关推荐

  1. ecshop中ajax的调用原理

    1:首先ecshop是如何定义ajax对象的. ecshop中的ajax对象是在js/transport.js文件中定义的.里面是ajax对象文件.声明了一个var Ajax = Transport; ...

  2. OpenGL中摄像机矩阵的计算原理

    OpenGL中摄像机矩阵的计算原理 熟悉OpenGL|ES的朋友,可能会经常设置摄像机的view矩阵,iOS中相对较好,已经封装了方向,只需要设置摄像机位置,目标点位置以及UP向量即可.下面先介绍下摄 ...

  3. JAVA中堆栈和内存分配原理

    JAVA中堆栈和内存分配原理 1.栈.堆 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在 ...

  4. php new对象 调用函数,关于JS中new调用函数的原理介绍

    这篇文章主要介绍了关于JS中new调用函数的原理介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 JavaScript 中经常使用构造函数创建对象(通过 new 操作符调用一个函数) ...

  5. mysql 事物的持久性是指_详解MySQL中事务的持久性实现原理

    前言 说到数据库事务,大家脑子里一定很容易蹦出一堆事务的相关知识,如事务的ACID特性,隔离级别,解决的问题(脏读,不可重复读,幻读)等等,但是可能很少有人真正的清楚事务的这些特性又是怎么实现的,为什 ...

  6. ECSHOP中transport.js和jquery的冲突的简单解决办法

    ECSHOP中transport.js和jquery的冲突的简单解决办法 一流资源网近日在ECSHOP网站加入了几个JS特效代码,在谷歌.火狐下正常,在各版本IE下都不常,左思不得其解. 最后才知道原 ...

  7. mysql mvcc机制rc_Mysql中MVCC的使用及原理

    数据库默认隔离级别:RR(Repeatable Read,可重复读),MVCC主要适用于Mysql的RC,RR隔离级别 创建一张存储引擎为testmvcc的表,sql为: CREATE TABLE t ...

  8. Hive中Join的 MR 底层原理

    Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join) 一. Hive Common Join 如果不指定MapJoin或者不符合 ...

  9. 理解SQL Server中索引的概念,原理

    理解SQL Server中索引的概念,原理 摘自:http://51even.iteye.com/blog/1490412 简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索 ...

最新文章

  1. Agent Job相关的系统表
  2. 阿里巴巴云原生 etcd 服务集群管控优化实践
  3. Revenue Cloud答疑
  4. 在Excel中实现下拉列表选择录入
  5. LeetCode 2033. 获取单值网格的最小操作数(贪心)
  6. 用计算机计算汉坦,河北省Ⅱ型汉坦病毒流行特征及与细胞自噬相互作用研究
  7. pycharm安装xlrd失败_Pycharm 下载与安装 详解
  8. java中如何调用属性_java – 如何从属性文件导入值并在注释中使用它?
  9. Kubernetes通过一行shell命令给pod中的zk节点添加权限
  10. Mysql union和union all用法
  11. idea使用activiti插件
  12. 商标注册流程与注意事项 logo 商标注册类型分类解释
  13. 别样的唐诗宋词汇——基于Python的量化分析挖掘尝试
  14. 2021-08-24
  15. ndk命令行编译so库
  16. vue实现icon刷新动画
  17. 超漂亮的前台页面模板——html+css+js+框架
  18. 高仿小米商城项目,我爱了!
  19. 表格的背景图片怎么弄HTML,HTML中新建表格怎么加背景
  20. 利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

热门文章

  1. 注意力机制在softmax时需要除以一个根号8的作用
  2. 熵权法中计算的熵值与决策树的熵值完全不一样之谜
  3. python strip函数用法_python strip()函数 介绍
  4. 天地伟业tiandy如何连手机_关注 | 天地盖手工盒裱纸选铜版纸还是白牛皮纸?
  5. combobox 取消记忆功能_南京长江大桥桥头堡空间改造设计,记忆与纪念的共鸣
  6. 【企业管理】2020年的经营关键词
  7. 项目经理的个人体会、经验总结
  8. Android中使用Notification在通知栏中显示通知
  9. Redis之通用的key操作命令
  10. MyBatisPlus插件扩展_PerformanceInterceptor性能分析插件的使用