您现在的位置是:首页 > 教程 > ecshop商城教程ecshop商城教程
ecshop学习知识
秋翠2025-01-01 22:27:43ecshop商城教程已有11人查阅
导读ecshop里的有些.php页是不需要用户通过url直接访问的,用来被其它页调用的,例如/includes/init.php,就不需要直接访问,通过url访问你的网址/includes/init.php是无意义的
1.define('IN_ECS', true);
ecshop中为什么要写Hacking attempt
ecshop中为什么要定义'IN_ECS'
ecshop里的有些.php页是不需要用户通过url直接访问的,用来被其它页调用的,例如/includes/init.php,就不需要直接访问,通过url访问你的网址/includes/init.php是无意义的,所以我们在可以直接方问的php里加上
define('IN_ECS', true);
在不能直接访问的php里加上 这样当直接访问init.php里就会显不
Hacking attempt
从页起到禁止访问的目的,而其它页面在调用init.php时是正常的
这样做另一个好处,就是更安全
2. 获取路径实例[1] 这样就可以运行。
但是这样就报语法错误 我们知道__FUNCTION__就是个函数名,同样是一个函数名变量,为什么得赋给一个临时变量才能编译通过?!!!!!
因为php执行引擎分为运行代码时分为2个步骤,解析(编译)期和执行期
__FUNCTION__ 是在解析期就可以确定的
而 $func() 会在解析期认定是需要执行期才可以确定,所以在解析期是不处理,直接保留到执行期 经过解析期后,会变为(伪代码表示): 而 经过解析期后,会变为 3.define('ROOT_PATH', str_replace('includes/init.php', '', str_replace('\\', '/', __FILE__)));
这里为什么是\\ 而不是\
因为\在编辑语言里是特殊字符,用来表达一些无法直接打字的字符用的,比如\n不是\和n,而是换行,还有\t\r之类的,所以要想\字符,就得双写。
, 0);
‘session.use_trans_sid’:是否使用明码在URL中显示SID(会话ID),
默认是禁止的,因为它会给你用户带来安全危险: 1.用户可能将包含有效的sid的URL通过email/irc/QQ/MSN等途径告诉其他人。
2.包含有效sid的URL可能会保存在公用电脑上。
3.用户可能保存带有固定不变的SID的URL在他们的收藏夹或者浏览历史记录里。 基于URL的会话管理总是比基于Cookie的会话管理有更多的风险,所以应当禁用。
5. 6. 一般情况下两者打印出来的东西基本一样的,但是如果你输入
/test.php/123456的话
$_SERVER['PHP_SELF']结果是/test.php/123456
而$_SERVER['SCRIPT_NAME']结果是/test.php
所以为了安全起见,为了指向自身,应该用$_SERVER['SCRIPT_NAME']而不是$_SERVER['搜索PHP_SELF']。
7 ob_start相关函数了解:
1、Flush:刷新缓冲区的内容,输出。
函数格式:flush()
说明:这个函数经常使用,效率很高。
2、ob_start :打开输出缓冲区
函数格式:void ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。
3、ob_get_contents :返回内部缓冲区的内容。
使用方法:string ob_get_contents(void)
说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。
4、ob_get_length:返回内部缓冲区的长度。
使用方法:int ob_get_length(void)
说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。
5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。
使用方法:void ob_end_flush(void)
说明:这个函数发送输出缓冲区的内容(如果有的话)。
6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区
使用方法:void ob_end_clean(void)
说明:这个函数不会输出内部缓冲区的内容而是把它删除!
7、ob_implicit_flush:打开或关闭绝对刷新
使用方法:void ob_implicit_flush ([int flag])
说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()
*/
?>
ecshop中为什么要写Hacking attempt
ecshop中为什么要定义'IN_ECS'
ecshop里的有些.php页是不需要用户通过url直接访问的,用来被其它页调用的,例如/includes/init.php,就不需要直接访问,通过url访问你的网址/includes/init.php是无意义的,所以我们在可以直接方问的php里加上
define('IN_ECS', true);
在不能直接访问的php里加上 这样当直接访问init.php里就会显不
Hacking attempt
从页起到禁止访问的目的,而其它页面在调用init.php时是正常的
这样做另一个好处,就是更安全
2. 获取路径实例[1] 这样就可以运行。
但是这样就报语法错误 我们知道__FUNCTION__就是个函数名,同样是一个函数名变量,为什么得赋给一个临时变量才能编译通过?!!!!!
因为php执行引擎分为运行代码时分为2个步骤,解析(编译)期和执行期
__FUNCTION__ 是在解析期就可以确定的
而 $func() 会在解析期认定是需要执行期才可以确定,所以在解析期是不处理,直接保留到执行期 经过解析期后,会变为(伪代码表示): 而 经过解析期后,会变为 3.define('ROOT_PATH', str_replace('includes/init.php', '', str_replace('\\', '/', __FILE__)));
这里为什么是\\ 而不是\
因为\在编辑语言里是特殊字符,用来表达一些无法直接打字的字符用的,比如\n不是\和n,而是换行,还有\t\r之类的,所以要想\字符,就得双写。
, 0);
‘session.use_trans_sid’:是否使用明码在URL中显示SID(会话ID),
默认是禁止的,因为它会给你用户带来安全危险: 1.用户可能将包含有效的sid的URL通过email/irc/QQ/MSN等途径告诉其他人。
2.包含有效sid的URL可能会保存在公用电脑上。
3.用户可能保存带有固定不变的SID的URL在他们的收藏夹或者浏览历史记录里。 基于URL的会话管理总是比基于Cookie的会话管理有更多的风险,所以应当禁用。
5. 6. 一般情况下两者打印出来的东西基本一样的,但是如果你输入
/test.php/123456的话
$_SERVER['PHP_SELF']结果是/test.php/123456
而$_SERVER['SCRIPT_NAME']结果是/test.php
所以为了安全起见,为了指向自身,应该用$_SERVER['SCRIPT_NAME']而不是$_SERVER['搜索PHP_SELF']。
7 ob_start相关函数了解:
1、Flush:刷新缓冲区的内容,输出。
函数格式:flush()
说明:这个函数经常使用,效率很高。
2、ob_start :打开输出缓冲区
函数格式:void ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。
3、ob_get_contents :返回内部缓冲区的内容。
使用方法:string ob_get_contents(void)
说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。
4、ob_get_length:返回内部缓冲区的长度。
使用方法:int ob_get_length(void)
说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。
5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。
使用方法:void ob_end_flush(void)
说明:这个函数发送输出缓冲区的内容(如果有的话)。
6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区
使用方法:void ob_end_clean(void)
说明:这个函数不会输出内部缓冲区的内容而是把它删除!
7、ob_implicit_flush:打开或关闭绝对刷新
使用方法:void ob_implicit_flush ([int flag])
说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()
*/
?>
本文标签:
很赞哦! (0)
暂无内容 |
暂无内容 |
相关文章
暂无内容 |
暂无内容 |
随机图文
ecshop中以B开头的ecshop函数
ECSHOP中以B开头的ECSHOP函数,其实很少的,只有几个,大家看下面教程:brand_related_cat($brand)功能:获得与指定品牌相关的分类参数:$brand品牌id,为int类型discuz和ecshop的截取字符串函数对比分析
网上看到一篇文章 discuz和ecshop截取字符串的两个函数,比较了一下两个版本的函数,都各有局限,只能在特定的前提下使用,但是学习一下有利于拓宽思路,了解PHP的扩展功能。ecshop模板用法示例
经常可以看到ecshop的dwt文件里面有“和”ecshop优惠活动优惠卷设置教程
首入ECShop 的后台管理中,从左边选择促销管理 -> 优惠活动然后点击右上角的添加优惠活动,在这里你需要填写优惠活动名称,优惠活动开始时间以及优惠活动结束时间。
留言与评论 (共有 0 条评论) |