2011-09-15 1 views
1

У меня есть страница профиля пользователя, которые имеют следующий URL: www.XXXXXXX.com/userid/45предотвратить доступ к профилю пользователя странице из идентификатора пользователя

есть способ, чтобы предотвратить доступ к другой странице, когда пользователь изменение/идентификатор/45 в/идентификатор пользователя/47

+0

Нужна дальнейшая информация: для начала, на каком языке вы используете? – PeeHaa

+0

Я использую php и zend framework – Inducesmile

ответ

0

в зависимости от языка, который вы используете, что-то вроде этого на странице профиля пользователя:

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

вы можете взглянуть на Zend_Acl.

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

Это позволит вам контролировать доступ к определенным ресурсам (например, профиль) на основе назначенных привилегий роли, делающего запрос. Вы также можете указать более мелкозернистый доступ с утверждениями.

Итак, скажем, например, вы указали «зарегистрированную» роль для пользователей, зарегистрированных на вашем сайте, у которых также будет страница профиля. Ваше правило может выглядеть следующим образом: -

'Зарегистрированный' может 'показывать' а 'профиль' ', если это их профиль'.

Роль: 'зарегистрирован'

Privilege: 'дисплей'

Ресурс: 'Профиль'

Assertion: код, который проверяет наличие собственности

0

Я искал это в WordPress и только после отправки моего ответа я даже понял, что вы спрашивали о чем-то, кроме словаря ... Ну, для людей, которые совершают мою ту же ошибку, вот то же самое, но для wordpress:

Вы можете изменить это, чтобы перенаправить всех пользователей, а не только одного пользователя, изменив == на != и введите только идентификатор администратора (обычно «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'); 
    } 
}