PHP特性的启用/禁用取决于用户


PHP features enabled/disabled depending on user

我目前正在使用php作为我的服务器端脚本语言编写一个网站。我已经让它工作,以便根据用户偏好使用cookie/会话存储当前用户。

我希望人们能够查看其他人的个人资料页面,但显然功能将被禁用,如果个人资料页面不是他们自己的。我该怎么做呢?我应该使用会话还是其他方法?这显然必须工作,所以当链接到别人的个人资料页面被点击,它记得'profile.php'将不得不禁用一些功能。

谢谢

这是一个常见的场景,下面是我在遇到这种情况时集成的一个模式。

假设您正在使用会话,当用户登录时,设置:

$_SESSION['isLoggedIn'] = true;

当用户注销时,设置:

$_SESSION['isLoggedIn'] = false;

然后你可以创建一个辅助函数,返回一个布尔值,像这样:

function is_user_logged_in() {
    return $_SESSION['isLoggedIn'];
}

然后,在整个代码中,您可以根据辅助函数的返回值有条件地显示项。

if ( is_user_logged_in() ) {
    //show the logout button if current user is logged in
    echo "<button class='logout'>Logout</button>";
} else {
    //show the login button if current user is not logged in
    echo "<button class='login'>Login</button>";
}

WordPress使用了一个同名的辅助函数:is_user_logged_in().

您必须确定谁是登录的人…

系统流程

如果用户登录将该用户的唯一标识存储到Session

(我。e $_Session['UniqueID'] == UserID)

如果用户点击其他用户的个人资料它会比较

$_Session['UniqueID'] == ClickedUserID

如果是true,则启用特性如果是false,则禁用功能

希望对你有帮助。