2009-11-03 7 views
-3

et il est lié à un 'confirmer le commentaire supprimé page. Idéalement, je voudrais juste qu'il soit effacé et que la page soit rechargée, puis l'envoyer à mon db marqué comme mort.Avoir un bouton de suppression exaclty où je le veux

Fondamentalement, les utilisateurs ont un profil qui permet aux autres utilisateurs de faire des commentaires. Avec l'aide de PHP, je voudrais pouvoir faire apparaître le bouton de suppression seulement quand un utilisateur regarde son profil.

C'est ce que j'ai jusqu'à présent:

$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>"; 
} 
?> 

J'ai posé cette question deux ou trois fois aujourd'hui et soit acquis des réponses vagues (ce qui est en partie de ma faute parce que je ne donne pas assez de code exemple qui nous l'espérons ce qui précède est suffisant) ou je me suis fait parler, interrogé sur mes capacités ou dit d'aller louer un développeur. haha. Donc, si vous êtes un développeur plus expérimenté qui veut partager leurs connaissances avec un développeur en devenir qui serait grandement apprécié. Après tout, n'est-ce pas l'un des objectifs de ce site?

Si vous n'avez pas le temps de m'expliquer cela, un lien vers un excellent tutoriel ou une ressource qui peut m'aider à trouver mon chemin serait incroyable! Je vous remercie.

+4

Vous devriez mettre à jour votre question existante (http://stackoverflow.com/questions/1662337/sending-a-delte-php-properly-to-my-db?) Plutôt que d'ouvrir une nouvelle ... Peut-être – bdonlan

+3

vous avez obtenu des réponses subpar parce que vous avez demandé une question subpar. Le code est mal formaté (oui cela compte) et il n'est pas réduit au strict minimum pour expliquer votre problème (ce qui aide les lecteurs à comprendre et à démontrer que vous avez fait des efforts plutôt que de faire un vidage de code . – cletus

+0

Aussi, en général, SO est sur l'enseignement des concepts généraux, pas d'écriture de code spécifique pour vous. En tant que tel, bien qu'il n'y ait rien de mal à demander, ne soyez pas surpris si les réponses sont moins utiles parfois si vous demandez essentiellement aux gens de le faire pour vous. De toute façon - une note de clarification - voulez-vous savoir ce qui se passe dans 'DeleteComment.php', ou voulez-vous savoir ce qui est cassé dans le code ci-dessus, ou quoi? – bdonlan

Répondre

2

Essayez de changer la ligne:

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

à

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

afin que le lien de suppression apparaît seulement lorsque le profil appartient à l'affiche.

+0

Je l'ai mis au début aussi, mais je pense qu'il le voulait seulement quand l'utilisateur connecté regardait son propre profil. même si cela ne me surprendrait pas si elle était mal formulée dans la question. –

+0

Homme, les gens sont durs ici. –

+1

Désolé si j'ai dit quelque chose pour vous offenser quelque part - je ne voulais pas être dur au-dessus; J'essaie juste de donner des conseils sur la façon d'obtenir de meilleures réponses à vos questions futures, puisque vous sembliez avoir de la malchance.Je vous suggère de lire «Comment poser des questions intelligentes» de l'ESR à l'adresse http://catb.org/~esr/faqs/smart-questions.html - il sort un peu dur aussi, mais il fait beaucoup de bons points sur la façon dont communiquer ce que vous voulez savoir efficacement et comment obtenir de bonnes réponses. – bdonlan

1

Quel est exactement le problème ici? Il semble que vous ayez correctement configuré le lien 'supprimer', maintenant tout ce que vous avez à faire est de créer cette page DeleteComment. Dans ce document, vous feriez quelque chose comme ceci:

$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 

D'autres pourraient également vous recommandons d'utiliser POST plutôt que GET pour des raisons que je ne me sens pas comme entrer dans ici (les araignées pourraient « cliquez sur » il). Et vous voudrez probablement vous assurer que les utilisateurs sont connectés ou quelque chose comme ça aussi. Et REQUEST_URI n'est pas supposé fiable, car cela dépend du navigateur du client qui vous envoie cette information. Vous pouvez contourner cela en enregistrant la dernière URL dans une session ou quelque chose comme ça.

+0

Je pense que le problème est que le lien de suppression apparaît pour tout le monde, parce que son si L'instruction compare la même variable à elle-même. –

+0

ah ... j'ai été distrait par toutes les autres absurdités dans sa question. – mpen

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

cela devrait toujours être vrai.

semble que vous avez besoin

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

Il faut aussi noter que l'id vous passez à votre lien de suppression est l'identifiant du profil au lieu du commentaire lui-même. vous ne voulez probablement pas supprimer un profil entier ici.

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

Cela sera toujours vrai. Vouliez-vous dire:

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

Je suppose $prof est le profil de l'utilisateur connecté. Si ce n'est pas le cas, vous devrez utiliser autre chose ici!(S'il vous plaît indiquer quelles variables sont si ce n'est pas clair dans les exemples de code, il va nous aider à vous aider)

Assurez-vous de revérifier cela dans DeleteComment.php - juste parce qu'il n'y a pas de bouton ne signifie pas qu'un pirate entreprenant ne fera pas un pour eux-mêmes!

En outre,

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

Si je comprends bien vos variables, $prof est le profil de l'utilisateur connecté; pas le commentaire. Donc, cela n'a aucun moyen de spécifier quel commentaire doit être supprimé; seulement l'utilisateur actuellement connecté. Vous voudrez peut-être passer l'identifiant du commentaire - puisque vous n'avez pas posté votre schéma, je ne peux pas donner de code spécifique ici.

Questions connexes