我想知道(如果可能的话)如何-使一个用户的个人资料页可供另一个用户在一个网站上查看。例如,一个用户有配置文件页,那么另一个用户可以登陆这个页面并查看它和内容。
目前,我可以将配置文件页面与它所属的用户关联起来,我不确定下一步要采取什么步骤,以及其他用户要查看的顺序。下面是我的代码片段,它将用户带到他们自己的配置文件中,因此会话对他们来说是独一无二的,因此不允许任何其他登录的用户查看配置文件页面。
我知道我可能必须使用GET_REQUEST,但不知道如何将我希望看到的用户id作为GET变量
如果有人能给我指明正确的方向,或者用代码给我举个例子,那就太好了。我使用的是MySQL和最新的PHP。
if(isset($_SESSION['CurrentUser'])){ // if session is true
// print to dash welcome + username
echo "Welcome to the website: ".$_SESSION['CurrentUser'];
// append the user's name to the URL for profile page
echo nl2br ("\n<a href=profile.php?id=".$_SESSION['CurrentUser'].">My Profile</a>"); /
}
else{
echo ("not logged in");
}我的$_SESSION['CurrentUser']是在我的查询页面中定义的,它检查用户名和密码,$_SESSION['CurrentUser'] = $_POST["username"];。
发布于 2016-04-02 22:49:58
为此,我使用了一个用户列表,其中每个条目都链接到"profile.php?ref=USER_ID“
user_list
<?PHP
$query = "SELECT * FROM users";
$result = mysql_query($query);
if (!$result){ die('Ungültige Abfrage: ' . mysql_error()); }
while ($output = mysql_fetch_array($result, MYSQL_ASSOC)){
?>
<tr>
<td class="text-center"><?PHP if(!empty($output['user_avatar'])){ echo '<a href="./profile?req='.$output['user_id'].'"><img height="40px" src="data:image/jpeg;base64,'.base64_encode( $output['user_avatar'] ).'"/></a>'; } else { echo '<img height="40px" src="./style/img/avatar_default.jpg"/>'; }?></td>
<td class="text-center"><a href="./profile?req=<?PHP $output['user_id'] ?>"><?PHP echo $output['user_name'] ?></a></td>
<td class="text-center"><?PHP echo $output['user_last_activity'] ?></td>
<td class="text-center"><?PHP echo $output['user_register_date'] ?></td>
</tr>
<?
}
?>如果单击用户名,就会重定向到用户的配置文件页(profile.php?ref=$output['user_id'])。
如果调用了$_SESSION'user_id',则检查是否设置了profile.php,并且URL没有 req 参数,如果为true,则使用$_SESSION‘’user_id设置$req,否则使用URL $_GET'req'中的req参数设置$req。现在,我可以在where子句中使用$req提交查询。
<?PHP
if(isset($_SESSION['user_id']) && !isset($_GET['req'])){
$req = $_SESSION['user_id'];
} elseif(isset($_GET['req'])) {
$req = $_GET['req'];
}
$result = mysql_query("SELECT * FROM users WHERE user_id = '".$req."'");
$user = mysql_fetch_array($result, MYSQL_ASSOC);
?>总之,可以使用参数和不带req参数调用profile.php。
在用户验证之后,我在登录期间设置了$_SESSION'user_id'。
发布于 2016-04-02 22:40:28
到目前为止,您的正确之处在于只有一个用户应该拥有该页面的权限。但是网站所有者和管理员有权查看页面,也可以看到一个控制面板,允许他们暂停/禁止或使某人成为一个有特色的成员。
站点所有者/管理员将使用主“access_rights”表覆盖此表。特别是,他们可以根据自己的级别/角色来看待一切。您缺少的是一个用户级别的"view_status“表,该表将'user_id‘作为连接到现有表的主键。此表将具有布尔列,如:
'is_public','is_private',‘is_private’,'is_family,'is_friends,'is_member,等等。这个表只授予查看权限--不再授予。您可能需要一个同级表来定义他们可以在您的页面上看到的内容。
另一个表将是这个表的一个子表,它定义了如果朋友、成员或家庭可以在页面上发布评论等。PHP代码会在表之间进行所有交叉检查,从而得出最终的是/否结论。这些数据库可能变得复杂,因为人类关系是复杂的。
https://stackoverflow.com/questions/36379332
复制相似问题