ECShop2.7.3后台角色管理的一些BUG修复
日期:2013-10-27
网上只有提供第一个问题的修复资料,网上的经过我们实测修改,还是不完善存在输入角色名提交后依然提示角色名不能为空。以下是我们独家提供最完善角色管理多个问题修复解决。
ECSHOP后台“角色管理”存在大量的bug,如下:
一、角色名为空也能“添加”、“修改”点击保存到数据库,修复增加判断语句避免此问题。
未修复前的问题实测截图如下:
问题一修复解决方法如下:
A、编辑/admin/role.php,增加判断语句代码
搜索原代码如下
B、编辑/languages/zh_cn/admin/role.php,添加语言项代码
C、编辑/admin/templates/role_info.htm,去掉角色描述必填*提示符
搜索如下代码
二、管理员分派角色管理权限,无法正常显示使用。修复检查权限的语句解决此问题。
A、编辑/admin/role.php,修改检查权限语句
搜索,一共有三段:
admin_priv('admin_manage');
修改为:
admin_priv('role_manage');
三、角色“添加”、“删除”、“编辑”操作无记录管理员操作日志问题,增加记录管理员操作日志语句解决此问题。
角色添加和编辑的记录在问题一中已经修复过,以下只需增加记录管理员删除操作日志语句代码
A、编辑/admin/role.php,增加删除记录管理员操作日志语句
搜索
B、编辑/languages/zh_cn/admin/log_action.php,添加语言项代码
$_LANG['log_action']['role'] = '角色';
四、角色名相同也能“添加”、“修改”点击保存到数据库,修复增加判断语句避免此问题。
A、编辑/languages/zh_cn/admin/role.php,添加语言项代码
B、编辑/admin/role.php,增加判断语句代码
搜索如下代码,共有两段
ECSHOP后台“角色管理”存在大量的bug,如下:
一、角色名为空也能“添加”、“修改”点击保存到数据库,修复增加判断语句避免此问题。
未修复前的问题实测截图如下:
问题一修复解决方法如下:
A、编辑/admin/role.php,增加判断语句代码
搜索原代码如下
/*------------------------------------------------------ */ //-- 添加角色的处理 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'insert') { admin_priv('admin_manage'); $act_list = @join(",", $_POST['action_code']); $sql = "INSERT INTO ".$ecs->table('role')." (role_name, action_list, role_describe) ". "VALUES ('".trim($_POST['user_name'])."','$act_list','".trim($_POST['role_describe'])."')"; $db->query($sql); /* 转入权限分配列表 */ $new_id = $db->Insert_ID(); /*添加链接*/ $link[0]['text'] = $_LANG['admin_list_role']; $link[0]['href'] = 'role.php?act=list'; sys_msg($_LANG['add'] . " " .$_POST['user_name'] . " " . $_LANG['action_succeed'],0, $link); /* 记录管理员操作 */ admin_log($_POST['user_name'], 'add', 'role'); }把原代码修改如下
/*------------------------------------------------------ */ //-- 添加角色的处理 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'insert') { admin_priv('role_manage'); $act_list = @join(",", $_POST['action_code']); if (empty($_POST['user_name'])) { sys_msg($_LANG['role_name_empty'], 1); } else { $sql = "INSERT INTO ".$ecs->table('role')." (role_name, action_list, role_describe) ". "VALUES ('".trim($_POST['user_name'])."','$act_list','".trim($_POST['role_describe'])."')"; $db->query($sql); /* 记录管理员操作 */ admin_log($_POST['user_name'], 'add', 'role'); } /* 转入权限分配列表 */ $new_id = $db->Insert_ID(); /*添加链接*/ $link[0]['text'] = $_LANG['admin_list_role']; $link[0]['href'] = 'role.php?act=list'; sys_msg($_LANG['add'] . " " .$_POST['user_name'] . " " . $_LANG['action_succeed'],0, $link); }搜索原代码如下
/*------------------------------------------------------ */ //-- 更新角色信息 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'update') { /* 更新管理员的权限 */ $act_list = @join(",", $_POST['action_code']); $sql = "UPDATE " .$ecs->table('role'). " SET action_list = '$act_list', role_name = '".$_POST['user_name']."', role_describe = '".$_POST['role_describe']." ' ". "WHERE role_id = '$_POST[id]'"; $db->query($sql); $user_sql = "UPDATE " .$ecs->table('admin_user'). " SET action_list = '$act_list' ". "WHERE role_id = '$_POST[id]'"; $db->query($user_sql); /* 提示信息 */ $link[] = array('text' => $_LANG['back_admin_list'], 'href'=>'role.php?act=list'); sys_msg($_LANG['edit'] . " " . $_POST['user_name'] . " " . $_LANG['action_succeed'], 0, $link); }把原代码修改如下
/*------------------------------------------------------ */ //-- 更新角色信息 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'update') { /* 更新管理员的权限 */ $act_list = @join(",", $_POST['action_code']); $sql = "UPDATE " .$ecs->table('role'). " SET action_list = '$act_list', role_name = '".$_POST['user_name']."', role_describe = '".$_POST['role_describe']." ' ". "WHERE role_id = '$_POST[id]'"; $db->query($sql); if (empty($_POST['user_name'])) { sys_msg($_LANG['role_name_empty'], 1); } else { $user_sql = "UPDATE " .$ecs->table('admin_user'). " SET action_list = '$act_list' ". "WHERE role_id = '$_POST[id]'"; $db->query($user_sql); /* 记录管理员操作 */ admin_log($_POST['user_name'], 'edit', 'role'); } /* 提示信息 */ $link[] = array('text' => $_LANG['back_admin_list'], 'href'=>'role.php?act=list'); sys_msg($_LANG['edit'] . " " . $_POST['user_name'] . " " . $_LANG['action_succeed'], 0, $link); }
B、编辑/languages/zh_cn/admin/role.php,添加语言项代码
$_LANG['role_name_empty'] = '角色名不能为空!';
C、编辑/admin/templates/role_info.htm,去掉角色描述必填*提示符
搜索如下代码
<textarea name="role_describe" cols="31" rows="6">{$user.role_describe|escape}</textarea> {$lang.require_field}修改为如下代码
<textarea name="role_describe" cols="31" rows="6">{$user.role_describe|escape}</textarea>
二、管理员分派角色管理权限,无法正常显示使用。修复检查权限的语句解决此问题。
A、编辑/admin/role.php,修改检查权限语句
搜索,一共有三段:
admin_priv('admin_manage');
修改为:
admin_priv('role_manage');
三、角色“添加”、“删除”、“编辑”操作无记录管理员操作日志问题,增加记录管理员操作日志语句解决此问题。
角色添加和编辑的记录在问题一中已经修复过,以下只需增加记录管理员删除操作日志语句代码
A、编辑/admin/role.php,增加删除记录管理员操作日志语句
搜索
$id = intval($_GET['id']);在搜索到的代码下一行加入以下代码
/* 获得角色名 */ $role_name = $db->getOne('SELECT role_name FROM '.$ecs->table('role')." WHERE role_id='$_GET[id]'");搜索
$url = 'role.php?act=query&' . str_replace('act=remove', '', $_SERVER['QUERY_STRING']);在搜索到的代码上一行加入以下代码
/* 记录管理员操作 */ admin_log(addslashes($role_name), 'remove', 'role');
B、编辑/languages/zh_cn/admin/log_action.php,添加语言项代码
$_LANG['log_action']['role'] = '角色';
四、角色名相同也能“添加”、“修改”点击保存到数据库,修复增加判断语句避免此问题。
A、编辑/languages/zh_cn/admin/role.php,添加语言项代码
$_LANG['role_name_exist'] = '该角色名已经存在!';
B、编辑/admin/role.php,增加判断语句代码
搜索如下代码,共有两段
$act_list = @join(",", $_POST['action_code']);在搜索到的第一段代码上一行加入以下代码
/* 判断角色名是否已经存在 */ if (!empty($_POST['user_name'])) { $is_only = $exc->is_only('role_name', stripslashes($_POST['user_name'])); if (!$is_only) { sys_msg(sprintf($_LANG['role_name_exist'], stripslashes($_POST['user_name'])), 1); } }搜索如下代码
elseif ($_REQUEST['act'] == 'update') {在下一行,加入以下代码
/* 变量初始化 */ $role_id = !empty($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; $role_name = !empty($_REQUEST['user_name']) ? trim($_REQUEST['user_name']) : '';搜索如下代码
$sql = "UPDATE " .$ecs->table('role'). " SET action_list = '$act_list', role_name = '".$_POST['user_name']."', role_describe = '".$_POST['role_describe']." ' ". "WHERE role_id = '$_POST[id]'";将搜索到的代码修改为如下代码
/* 判断角色名是否已经存在 */ if (!empty($role_name)) { $is_only = $exc->num('role_name', $role_name, $role_id); if ($is_only == 1) { sys_msg(sprintf($_LANG['role_name_exist'], stripslashes($role_name)), 1); } else { $sql = "UPDATE " .$ecs->table('role'). " SET action_list = '$act_list', role_name = '".$_POST['user_name']."', role_describe = '".$_POST['role_describe']." ' ". "WHERE role_id = '$_POST[id]'"; $db->query($sql); } }打包提供我们修改好的文件给大家,下载地址:http://pan.baidu.com/s/1cMrHJ
本文原创地址:https://www.ecshopok.com/article-107.html
版权所有 © 转载时必须以链接形式注明出处!
觉得本文对您有用,想收藏下来!方法很简单:请点击-〉
我们一直坚持白天工作、晚上熬夜更新资源,付出了巨大的精力和时间,其中的辛酸难以言述。
暂无评论,来发表一个吧