阻止从用户ID访问用户个人资料页面

时间:2011-09-15 19:25:23

标签: php zend-framework url user-profile

我有一个用户个人资料页面,其中包含以下网址:www.XXXXXXX.com/userid/45

当用户将/ userid / 45更改为/ userid / 47时,有没有办法阻止访问其他页面

3 个答案:

答案 0 :(得分:0)

根据您使用的语言,在用户个人资料页面上显示以下内容:

if url_segment(2) != user_info['userid']
  render no_permission
end

答案 1 :(得分:0)

你可能想看一下Zend_Acl。

http://framework.zend.com/manual/en/zend.acl.introduction.html

这将允许您根据发出请求的角色的指定权限来控制对某些资源(例如配置文件)的访问。您还可以使用断言指定更细粒度的访问。

因此,例如,您为在您的​​网站上注册的用户指定了“已注册”角色,该用户也将拥有个人资料页面。您的规则可能如下所示: -

'已注册'可以'显示''个人资料''如果是他们的个人资料'。

角色:'已注册'

特权:'显示'

资源:'个人资料'

断言:检查所有权的代码

答案 2 :(得分:0)

我在wordpress中寻找这个,只有在发布我的答案之后我才意识到你在询问除了wordpress之外的其他东西......哦,对于那些犯同样错误的人来说,这是同样的事情,但对于WordPress的:

您可以通过将==更改为!=并仅输入管理员ID(通常为“1”)来对其进行修改以使其重定向所有用户而非仅一个用户。

add_action('admin_init', 'redirect_to_forum');
function redirect_to_forum(){
    $current_user=wp_get_current_user();

    if($current_user->user_id == "47"){
        header('Location: http://somewhereelse.com');
    }
}