Если заявление использовалось, чтобы заставить функциональную кнопку появляться? - PullRequest
0 голосов
/ 02 ноября 2009

У меня 2-й день (16-й час), когда я пытаюсь заставить мою кнопку удаления делать то, что я хочу с PHP. У меня есть сайт, который является социальной сетью, в которой есть профили пользователей. Пользователи могут оставлять комментарии в профиле другого пользователя. Я пытаюсь разместить ссылку для удаления в указанной области, которая отображается только в том случае, если вы просматриваете свой собственный профиль, и исчезает, когда вы просматриваете чужой профиль. Я также не хочу делать страницу подтверждения удаления. Я хочу, чтобы страница была перезагружена с выбранным комментарием, чтобы удалить его, и я был отправлен на мою базу данных, помеченную как мертвая. Это то, что я до сих пор:

           <?php

           $query = "SELECT * FROM `ProfileComments` WHERE `ToUserID` = '".$prof->id."' ORDER BY `date` DESC, `time` DESC LIMIT 10";


           $request = mysql_query($query,$connection);


           while($result = mysql_fetch_array($request)) {





           $poster = new User($result['FromUserID']);

           echo "<div id='CommentProfile'>";
           echo "<div id='CommentPhotoProfile'>";
           echo "<a href='http://www.blah.org/Profile.php?id=".$poster->id."'>";
           echo "<img src='" . $poster->img('mini') . "' border='0'/>";
           echo "</a>";
           echo "</div>";
           echo "<div id='ProfileCommentBody' class= 'round_10px'>";
           echo "<div id='CommentNameProfile'>";
           echo "<div class='ProfileCommentTail'>&nbsp;</div>";
           echo "<a href='http://www.blah.org/Profile.php?id=".$poster->id."'>";
           echo $poster->first_name. " ". $poster->last_name. " <span style='font-weight:normal'>says...</span>";
           echo "</a>";
           echo "</div>";
           echo stripslashes(nl2br($result['commentProfileBody']));
           echo "<div id='CommentInfoProfile'>";
           echo date('M d, Y',strtotime($result['date']));
           echo " at " . date('g:i A',strtotime($result['time']));
           if ($poster->id == $prof->id)
           echo "<a href='http://www.blah.org/DeleteComment.php?id=".$prof->id."'>";
           echo " delete";
           echo "</a>";
           echo "</div>";
           echo "</div>";
           echo "</div>";
           }

           ?>

мне нужно сделать отдельный запрос под тем, который у меня уже есть, для составления комментариев? мне нужно добавить к этому запросу? как сделать так, чтобы кнопка удаления появлялась только тогда, когда пользователь смотрит на свою страницу? как мне сделать перезагрузку страницы с пропавшим комментарием после того, как я выбрал его и пометил как мертвый в БД?

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 02 ноября 2009

Заполните ваши переменные:

if ($current_user_id == $profile_user_id)
    echo '<a href="deletelink">delete</a>';
2 голосов
/ 02 ноября 2009

Будьте осторожны, если все, что вы делаете после авторизации привилегии удаления, - это скрытие или скрытие кнопки.

Если пользователи найдут другой способ вызвать действие удаления, проверка авторизации такого рода не будет работать. Например, если ваша реализация использует «URL-адрес удаления», который кодирует команду удаления, а ваша кнопка просто отправляет POST на этот URL-адрес, то когда кнопка скрыта, пользователь может вручную опубликовать команду удаления.

1 голос
/ 02 ноября 2009

Это совершенно неубедительно, код, но просто случайная мысль, так как вы действительно не даете нам работать. Возьми его таким, какой он есть:

function getPageUserID()
{
    return $_GET['userID'];
}
if ($user->userID == getPageUserID())
{
 //show delete button
    echo '<button value="Delete">Delete</button>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...