yoyolora 访问次数 : 15 注册日期 : 09-06-15 10:25 上次访问 : 09-10-29 21:05 |
我按照贴上写的更改了权限, 并且工作的很好, 但是主管要求增加一个功能,让程序可以判断 openby这个用户是哪个组的, 让后提出那个组的所有用户名, 这样那个组的所有人可以关闭这个 bug 因为我们工作流程是这样的, 我们部门做测试发现问题,录制bug, 其他部门修改后再由我们验证 但是修改后的第二次测试不会是openby(第一次)的那个人做, 这样如果bug解决了, 还得去找第一个测试的人去关闭bug。 所以希望能判断第一个测试的人是哪个组, 然后他的组员有权限 关闭bug(第二次测试的人会和第一个测试的人是同一组的) |
yoyolora 最后编辑, 09-06-26 15:34 回帖 |
wwccss 访问次数 : 593 注册日期 : 05-05-01 10:08 上次访问 : 10-07-19 11:44 |
通过用户session里面记录的group信息来做对比不就可以了吗。如果session 里面没有登记用户组信息,就修改一下登陆的程序,登陆的时候,将用户所在的分组信息记录到session里面。 然后判断一下openby的分组和当前用户的分组是否匹配。匹配就可以关掉了。 |
回帖 |
yoyolora 访问次数 : 15 注册日期 : 09-06-15 10:25 上次访问 : 09-10-29 21:05 |
谢谢, wwccss |
回帖 |
yoyolora 访问次数 : 15 注册日期 : 09-06-15 10:25 上次访问 : 09-10-29 21:05 |
wwccss, 我看了一下session.inc.php 没有没有登记用户组信息,是不是将用户所在的分组信息记录到session.inc.php 里面啊, openby的分组可以用for loop在找到么? |
回帖 |
wwccss 访问次数 : 593 注册日期 : 05-05-01 10:08 上次访问 : 10-07-19 11:44 |
不是放到那个文件里面。你可以在网上查找一下 php 会话管理,或者session管理。 简单来讲,就是登陆的时候,从数据库中取得分组信息,然后将其赋值到$_SESSION数组中。 $_SESSION['group'] = $user['group']; 诸如此类的代码,具体情况需要根据自己的需要修改。 |
回帖 |
yoyolora 访问次数 : 15 注册日期 : 09-06-15 10:25 上次访问 : 09-10-29 21:05 |
太感谢谢wwccss, 我试试看吧, 唉, 希望能搞定。 |
回帖 |
yoyolora 访问次数 : 15 注册日期 : 09-06-15 10:25 上次访问 : 09-10-29 21:05 |
wwccss, 我试着改了,但是好像改的不对, 怎么也不工作 我在funcmodel.inc.php 里加了这些 function baseJudgeUserGroup($TestUserName) { $GroupID = testGetGroupList("GroupUser LIKE '%,{$TestUserName},%'"); return $GroupID; } 再在baseJudgeUserLogin里加了 function baseJudgeUserLogin() $_SESSION['GroupID'] = baseJudgeUserGroup($TestUserName); 我试着将拿到的GroupID在页面显示以此证明拿到了正确的GroupID, 我在TopNav.php和tpl 里加了 $TPL->assign('UserGroupID', $_SESSION['UserGroupID']); ---------------------------------- TopNav.php {$Lang.Welcome},{$TestRealName},{$UserGroupID}, 但是不工作, 不知道拿出了问题啊 |
回帖 |
wwccss 访问次数 : 593 注册日期 : 05-05-01 10:08 上次访问 : 10-07-19 11:44 |
你要一点一点的调试一下。比如baseJudgeUserGroup这个函数返回的grooupid到底对不对。顺藤摸瓜,问题就能确定。 还有可以注意看一下apache的错误日志。也许能给你一些帮助信息。 |
回帖 |
yoyolora 访问次数 : 15 注册日期 : 09-06-15 10:25 上次访问 : 09-10-29 21:05 |
wwccss 谢谢你的答复, 我试着直接在login。php 获取GroupID 但是出现了报错: Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0 我在funmodel。inc.php也试了, 出现这样的报错 Fatal error: Call to a member function query() on a non-object in D:\xampp\htdocs\bugfree2\Include\FuncModel.inc.php on line 114 -------------------------------------------------------------------------------------------------------------------------------------------------------------------- $QueryGroup = "SELECT GroupID FROM bf_testusergroup WHERE GroupUser LIKE '%,$_SESSION[TestUserName],%' "; $UserGroup = $MyDB->query($QueryGroup); $GroupID = $UserGroup->fetchRow(); $_SESSION['GroupID'] = $UserGroupName[GroupID]; -------------------------------------------------------------------------------------------------- 这段代码哪里有问题,导致了报错啊 apache的错误日志在哪里看啊, 我用的是xampp 非常抱歉麻烦你了 |
回帖 |
wwccss 访问次数 : 593 注册日期 : 05-05-01 10:08 上次访问 : 10-07-19 11:44 |
检查一下php.ini文件里面register_globals参数的设置。 错误日志在xampp的安装目录下面的apache下面的log目录下面,找找就能看到了。 |
回帖 |
wwccss 访问次数 : 593 注册日期 : 05-05-01 10:08 上次访问 : 10-07-19 11:44 |
http://forums.digitalpoint.com/showthread.php?t=427439 |
回帖 |