在登录的特定用户上显示删除按钮


show delete button on specific user who logged in

我正在尝试登录的用户可以删除他自己的帖子,所以只有他应该看到他的帖子上的删除按钮。我自己在想,我必须绑定登录到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>';
}
...