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