我正在尝试登录的用户可以删除他自己的帖子,所以只有他应该看到他的帖子上的删除按钮。我自己在想,我必须绑定登录到posts/img ID的用户,然后他应该看到按钮。我对此有点挣扎,所以每一个有用的评论都很感激!
PHP<?php
$result = $mysqli->query("SELECT users.user_id, users.username,
picas.img_id, picas.user_id, picas.name, picas.description, picas.created_at
FROM users
JOIN picas ON users.user_id = picas.user_id
ORDER BY picas.created_at DESC");
while($pica = $result->fetch_assoc()) {
$ses_user = $_SESSION['username'];
echo '<div class="image_post">';
if(isset($ses_user) == $pica['user_id'] && $pica['img_id']) {
echo '<form action="logic/delete_post.php?id='.$pica['img_id'].'" method="POST">
<input type="hidden" name="id" value="?id='.$pica['img_id'].'" />
<input type="submit" name="deleteSubmit" value="Delete" class="delete_post" />
</form>';
}
echo '<div class="user_avatar"><img src="avatars/'.$pica['username'].'.jpeg" /></div>
<div class="user_name">'.$pica['username'].'</div> <br><br><br><br>
<div class="timeago">'.$diff.'</div>
<div class="image_description">'.$pica['description'].'</div>
<img src="'.$pica['name'].'" />
<div class="clear"></div>
</div>';
}
?>
您的问题是您正在检查isset($ses_user) == $pica['user_id']
是isset()一个返回bool
的函数。
您要检查的是当前用户是否是所有者。
正确的条件应该是:
...
if(isset($ses_user) && ($ses_user == $pica['username']) && $pica['img_id']) {
echo '<form action="logic/delete_post.php?id='.$pica['img_id'].'" method="POST">
<input type="hidden" name="id" value="?id='.$pica['img_id'].'" />
<input type="submit" name="deleteSubmit" value="Delete" class="delete_post" />
</form>';
}
...