使用mysql和php的用户私有照片系统?

使用mysql和php的用户私有照片系统?,php,mysql,Php,Mysql,我有一个网站,用户可以请求查看其他用户的私人照片。整个系统是用php和mysql建立起来的 其基本思想是,一个用户可以请求查看另一个用户的私人照片集。默认情况下,数据库中的每个用户都设置为,枚举值为“o”,如果他们发送查看图片的请求,并且用户接受此请求,则其枚举值将更改为1,并且他们可以查看用户的私人照片 我可以很好地工作,但是我创建了一个名为“permissions”的表,其中有三列,如下所示: user_id | private_id | privilege

我有一个网站,用户可以请求查看其他用户的私人照片。整个系统是用php和mysql建立起来的

其基本思想是,一个用户可以请求查看另一个用户的私人照片集。默认情况下,数据库中的每个用户都设置为,枚举值为“o”,如果他们发送查看图片的请求,并且用户接受此请求,则其枚举值将更改为1,并且他们可以查看用户的私人照片

我可以很好地工作,但是我创建了一个名为“permissions”的表,其中有三列,如下所示:

user_id     |     private_id     |   privilege 
   2                  4                  1
   5                  6                  0
因此,通过上表的演示;用户id 2现在可以看到用户id 4的私人图片。 但是,用户id 5无法查看用户id 6的照片

就像我说的,基本的想法是可行的,但是现在如果用户没有权限或者枚举值为1,那么他们应该看到带挂锁的模板图像

目前,只有在此表中配对的用户才能查看挂锁图像/模板图像

例如,如果user_id=2和private_id=1,那么user 2将能够看到挂锁/模板图像

但这是错误的,因为我希望所有用户都能够看到挂锁图像(登录时),如果他们的枚举值为0

有人能告诉我哪里出了问题吗?我试过了,但我想不出来。谢谢

我想我还应该提到,我有一个名为“users”的表,其中包含我的主要用户id,以及电子邮件、联系人号码等,表“permissions”user\u id刚刚被设置为管理权限的附加表,因此这可能需要=“users.user\u id”,但我不太确定,因为我还在学习mysql

功能:

function account_perms() {
            global $connection;
            global $_SESSION;
            global $profile_id;
            $query = "SELECT ptb_permissions.user_id, ptb_permissions.private_id, ptb_permissions.privellages
                        FROM ptb_permissions
                        WHERE ptb_permissions.private_id = \"$profile_id\"
                        AND ptb_permissions.user_id = ".$_SESSION['user_id']." ";
            $account_perms = mysql_query($query, $connection);
            confirm_query($query, $connection);
            return $account_perms;
        }
代码:


PRIVATE.PHP:

           <?php            
$photo = "data/private_photos/$profile[1]/pic1.jpg";
if (!file_exists($photo)) {
    $photo = "data/photos/0/_default.jpg";
}
$thumb = "data/private_photos/$profile[1]/thumb_pic1.jpg";
if (!file_exists($thumb)) {
    $thumb = "data/photos/0/_default.jpg";
}
 if (logged_in()) {
echo
"<li><a href=\"$photo\" rel=\"shadowbox\" title=\"<strong>$profile[2]'s Photo's</strong>\"><img src=\"$thumb\" width=\"90\" height=\"90\" alt=\"<strong>{$profile[2]}'s Photos</strong>\"  /></a></li>";

}
?>

<? } } ?>

<?

$account_perms = account_perms();

        while ($perms = mysql_fetch_array($account_perms)) {
             if ($perms['privellages'] == '0')  {


$photo = "data/private_photos/0/_default.jpg";
if (!file_exists($photo)) {
    $photo = "data/photos/0/_default.jpg";
}
$thumb = "data/private_photos/0/_default.jpg";
if (!file_exists($thumb)) {
    $thumb = "data/photos/0/_default.jpg";
}
 if (logged_in()) {
echo
"<li><a href=\"privileges.php\" rel=\"shadowbox;height=300;width=500\" title=\"<strong>Access Denied</strong>\"><img src=\"$thumb\" width=\"90\" height=\"90\" alt=\"<strong>{$profile[2]}'s Photos</strong>\"  /></a></li>";

 } 


?>


            <? } } ?>

您试图在表中为默认状态设置一个条目。如果有人已经获得了权限,那么只添加一个条目可能会更容易(如果需要,您可以将被拒绝的请求记录到其他地方或同一个表中)

现在寻找一个结合了用户和集合的记录,如果这样一个记录存在,用户有权限并显示照片。否则,转到默认状态并显示“拒绝访问”页面


通过这种方式,您可以避免当前的问题,即您没有未请求许可(因此未被拒绝或批准)的人的条目,并且您会遇到未处理的情况:没有显示挂锁图像。

(相关)请按照缩进准则尝试使您的代码更具可读性,这将使有人更容易提供帮助。
           <?php            
$photo = "data/private_photos/$profile[1]/pic1.jpg";
if (!file_exists($photo)) {
    $photo = "data/photos/0/_default.jpg";
}
$thumb = "data/private_photos/$profile[1]/thumb_pic1.jpg";
if (!file_exists($thumb)) {
    $thumb = "data/photos/0/_default.jpg";
}
 if (logged_in()) {
echo
"<li><a href=\"$photo\" rel=\"shadowbox\" title=\"<strong>$profile[2]'s Photo's</strong>\"><img src=\"$thumb\" width=\"90\" height=\"90\" alt=\"<strong>{$profile[2]}'s Photos</strong>\"  /></a></li>";

}
?>

<? } } ?>

<?

$account_perms = account_perms();

        while ($perms = mysql_fetch_array($account_perms)) {
             if ($perms['privellages'] == '0')  {


$photo = "data/private_photos/0/_default.jpg";
if (!file_exists($photo)) {
    $photo = "data/photos/0/_default.jpg";
}
$thumb = "data/private_photos/0/_default.jpg";
if (!file_exists($thumb)) {
    $thumb = "data/photos/0/_default.jpg";
}
 if (logged_in()) {
echo
"<li><a href=\"privileges.php\" rel=\"shadowbox;height=300;width=500\" title=\"<strong>Access Denied</strong>\"><img src=\"$thumb\" width=\"90\" height=\"90\" alt=\"<strong>{$profile[2]}'s Photos</strong>\"  /></a></li>";

 } 


?>


            <? } } ?>