我想知道(如果可能的话)如何让用户个人资料页面可供网站上的其他用户查看。例如,用户具有个人资料页面,然后另一个用户可以登陆此页面并查看它和内容。
目前我可以将个人资料页面与其所属的用户关联起来,我不确定接下来要采取的步骤以及其他用户要查看的顺序。下面是我的代码片段,它将用户带到他们自己的个人资料中,SESSION对他们来说是独一无二的,因此不会让任何其他用户登录查看个人资料页面。
我知道我可能不得不使用GET_REQUEST但不知道如何将我希望能够看作GET变量的用户的id放入
如果有人能指出我正确的方向或者给我一些代码示例,那就太好了。我正在使用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"];
答案 0 :(得分:0)
到目前为止您的正确性只有一个用户应该拥有该页面的权限。但网站所有者和管理员有权查看该页面,并且还可以看到一个控制面板,允许他们暂停/禁止或让某人成为特色会员。
网站所有者/管理员将覆盖此表格主'access_rights'表。他们基本上可以根据他们的等级/角色看到一切。您缺少的是用户级“view_status”表,其中“user_id”是将其链接到现有表的主键。此表将具有布尔列,例如:
'is_public','is_private','is_family,'is_friends,'is_member等。此表仅授予查看权限 - 不再。您可能需要一个兄弟表来定义他们可以在您的页面上看到的 。
另一张桌子将成为这个孩子的一个孩子,定义一个朋友,成员或家人是否可以在您的页面上发表评论等.PHP代码执行表之间的所有交叉检查,以得出最终的是/否结论。这些数据库可能变得复杂,因为人际关系很复杂。
答案 1 :(得分:0)
为此,我使用一个用户列表,其中每个条目都链接到“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']
)
如果调用了profile.php,我会检查是否设置了 $ _ SESSION ['user_id'] 且网址没有 req 参数,如果为true我设置<使用$ _SESSION ['user_id']强选> $ req ,否则我使用网址 $ _ 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);
?>
总之,可以使用参数调用profile.php,而不使用req参数。
我在用户验证后的登录过程中设置了 $ _ SESSION ['user_id'] 。