八月 25th, 2015 by lanxinxichen@126.com

今天在处理ecshop计划任务的时候,发现怎样都无法执行,而且由于重写了header头,导致一直获取不到错误信息,使用file_put_content() 函数一直跟踪代码,一直发现cron.php文件57行开始有以下代码:

$f_info = parse_url($_SERVER[‘HTTP_REFERER’]);
$f_now = basename($f_info[‘path’]);
$f = explode(‘ ‘, $cron_val[‘alow_files’]);
if (!in_array($f_now, $f))
{
continue;
}

也就是说如果访问链接不包含在设定的访问链接里面的时候,就跳出该循环.
而开启了url重写之后的$f_now为 XXXXX_156.html 自然匹配不到XXXX.php的$crom_val[‘alow_files]之中去.
添加一段兼容代码即可解决问题:

// 由于原本的计划任务不支持url重写,这里添加判断兼容代码
if (strstr($f_now,’html’)) {
$url = explode(‘-‘,$f_now);
$f_now = $url[0].’.php’;
}

把html的链接转化成.php的文件,然后重新重新判断访问来源是不是在设定的触发页面之中,经过测试,顺利执行!

Posted in PHP Tagged with: , ,

五月 21st, 2015 by lanxinxichen@126.com

第一步:
\admin\includes\inc_menu.php 添加 一个菜单项对应的路径
例如: $modules[’16_email_manage’][‘view_sendlist’]        = ‘view_sendlist.php?act=list’;  前面的数组是排序需要的,后面的email_manage 是一级菜单 view_sendlist 是二级菜单  ‘view_sendlist.php?act=list’是后台代码指向位置
第二步:
admin\includes\inc_priv.php 添加一个菜单项的别名
第三步:
languages\zh_cn\admin\common.php 添加公共语言包中别名对应的汉字
这里是简体中文,如果想完善,需要同时添加英文和繁体中文.
第四步:
anguages\zh_cn\admin\priv_action.php 添加权限文件中的别名对应的文字
同上 可以设置英文和繁体中文
第五步:
数据表 ecs_admin_action 添加数据 将权限跟action关联起来
第六步:
对应的zh_cn/log_action.php中添加相应的操作记录日志语言:
$_LANG[‘log_action’][‘content’] = ‘XX管理’;
 

Posted in PHP Tagged with: ,