2009-11-03 8 views
-3

이며 '삭제 된 댓글 확인 페이지'에 연결되어 있습니다. 이상적으로는 지우고 지우고 페이지를 다시로드 한 다음 죽은 것으로 표시된 db로 보냅니다.내가 원하는 곳에 삭제 버튼이 있습니다.

기본적으로 사용자는 다른 사용자가 주석을 작성할 수있는 프로필을 가지고 있습니다. 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.blahblah.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.blahblah.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 ($prof->id == $prof->id) 
     echo "<a href='http://www.blahblah.org/DeleteComment.php?id=".$prof->id."'>"; 
    echo " delete"; 
    echo "</a>"; 
    echo "</div>"; 
    echo "</div>"; 
    echo "</div>"; 
} 
?> 

몇 번이 부분적으로 내 잘못 오늘받은 모호한 답변 (그리고 하나가 내가 충분히 예제 코드를 제공하지 않았기 때문에 어떤 희망 위의 것만으로도 충분 함) 또는 나는 대화를 나누고, 자신의 능력에 대해 질문을하거나, 개발자를 고용하라고했습니다. 하하. 그래서 당신이 지식이 풍부하고 앞으로 나아갈 개발자들과 공유하고 싶어하는 경험 많은 개발자라면 크게 감사 할 것입니다. Afterall은이 사이트의 목적 중 하나가 아닙니다.

나에게이 사실을 설명 할 시간이 없다면 훌륭한 가이드 또는 리소스를 통해 내 방식을 찾는 데 도움이 될 것입니다. 고맙습니다.

+4

새 질문을 열기보다는 기존 질문 (http://stackoverflow.com/questions/1662337/sending-a-delte-php-properly-to-my-db?)을 업데이트해야합니다 ... – bdonlan

+3

아마도 당신은 subpar 질문을했기 때문에 subpar 응답을 받았습니다. 코드 형식이 잘못되었습니다 (예,이 문제). 문제를 설명하기 위해 최소한으로 줄이지 않았습니다 (독자가 이해할 수 있도록 도와 주며 코드 덤프를 "수정"하는 것보다 약간의 노력을 기울 였음을 보여줍니다). . – cletus

+0

또한 일반적으로 SO는 일반적인 개념을 가르치기위한 것이지 특정 코드를 작성하는 것이 아닙니다. 따라서, 묻는 데는 아무 것도 없지만, 기본적으로 사람들에게 당신을 위해 해줄 것을 요청할 때 대답이 도움이되지 않는다면 놀라지 마십시오. 어쨌든 - 명확한 설명 - 'DeleteComment.php'에 무엇이 들어 있는지 알고 싶습니까? 아니면 위의 코드에서 무엇이 손상되었는지 알고 싶습니까? – bdonlan

답변

2

시도 :

if ($prof->id == $prof->id) 

if ($poster->id == $prof->id) 

에 그렇게 삭제 링크 만 표시되는지 프로파일이 포스터에 속하는 경우.

+0

나는 이것을 처음에 넣었지 만, 로그인 한 사용자가 자신의 프로필을보고있을 때에 만 필요하다고 생각합니다. 질문에서 잘못 말하면 놀라지 않을 것입니다. –

+0

남자, 사람들은 여기에 가혹합니다. –

+1

미안 내가 너에게 어딘가에서 불쾌감을 줄 수있는 어떤 것을 말하면 - 나는 위가 거친 것을 의미하지는 않는다. 나는 당신의 미래 질문에 더 나은 답변을 얻는 방법에 대한 조언을하기 위해 노력하고 있습니다. 당신이 그것에 불행을 겪고있는 것처럼 보였기 때문입니다.나는 ESR의 "똑똑한 질문하는 법"@ http://catb.org/~esr/faqs/smart-questions.html을 읽는 것이 좋습니다 - 그는 너무 심하게 벗어나지 만, 그는 어떻게하면 좋을지에 대해 많이 지적합니다. 당신이 효과적으로 알고 싶은 것을 의사 소통하고, 좋은 반응을 얻는 방법. – bdonlan

1

여기 정확히 무슨 문제가 있습니까? '삭제'링크가 올바르게 설정되어있는 것 같습니다. 이제 DeleteComment 페이지를 생성하면됩니다. 그것에서는, 당신은 같은 것을 할 것입니다 :

$id = $_GET['id']; // make sure to sanitize this variable 
mysql_query("DELETE FROM ProfileComments WHERE id=$id"); 
header('location:'.$_SERVER['REQUEST_URI']); // redirect to last page 

다른 사람도 당신은 내가 여기에 점점 기분이 안 이유로 POST보다는 GET를 사용하는 것이 좋습니다 수 (거미를 "클릭"수 있음). 그리고 아마도 사용자가 로그인했는지 여부를 확인하기를 원할 것입니다. 그리고 REQUEST_URI은 그 정보를 보내는 클라이언트의 브라우저에 따라 달라지기 때문에 신뢰할 수 없습니다. 마지막 URL을 세션이나 그와 비슷한 것으로 저장하여이 문제를 해결할 수 있습니다.

+0

문제는 삭제 링크가 모든 사람에게 나타나고 있다고 생각합니다. 왜냐하면 그의 if 문은 동일한 변수를 자체 변수와 비교합니다. –

+0

아 ... 나는 그의 질문에서 다른 말도 안되는 것들이 산만 해졌다. – mpen

0
if ($prof->id == $prof->id) 
    echo "<a href='http://www.blahblah.org/DeleteComment.php?id=".$prof->id."'>"; 

항상 true가되어야합니다.

은 내가 아니라 당신이 당신의 삭제 링크에 전달하는 ID가 프로파일의 ID 대신 주석 자체 떨어져 있음을 알아 두셔야합니다

if ($logged_in_user->id == $prof->id) 
    echo "<a href='http://www.blahblah.org/DeleteComment.php?id=".$prof->id."'>"; 

이 필요한 것처럼 보인다. 전체 프로필을 여기에서 삭제하고 싶지 않을 것입니다. 라인을 변경

0
if ($prof->id == $prof->id) 

항상 사실입니다. 이것을 찾으 셨나요?

if ($prof->id == $poster->id) 

내가 $prof를 가정하고있어 로그인 한 사용자의 프로필입니다. 그렇지 않은 경우 여기에서 다른 것을 사용해야합니다!(코드 샘플에서 명확하지 않은 변수가 무엇인지 나타내면 도움이 될 것입니다.)

DeleteComment.php에서 다시 확인하십시오. 버튼이 없기 때문에 진취적인 해커가 만들 수 없다는 의미는 아닙니다. 하나는 스스로를 위해! 또한

,

echo "<a href='http://www.blahblah.org/DeleteComment.php?id=".$prof->id."'>"; 

내가 제대로 변수를 이해하면, $prof은 로그인 한 사용자 프로파일입니다; 의견이 아닙니다. 따라서 삭제해야 할 주석을 지정하는 방법이 없습니다. 현재 로그인 한 사용자 만 대신에 주석의 ID를 전달할 수 있습니다. 스키마를 게시하지 않았으므로 여기서 특정 코드를 제공 할 수는 없습니다.

관련 문제