Ben bunu istiyorum bir silme düğmesi exaclty var

4 Cevap php

ve bir 'onaylayın Yorum silindi sayfa bağlantılıdır. İdeal Ben sadece olmak sildim onu ​​seviyorum ve o gitti ile sayfayı yeniden var ve o benim db göndermek ölü olarak işaretlenmiş olacaktır.

Temel olarak, kullanıcılar diğer kullanıcıların Ben kullanıcıların profiline bakarak zaman silme buton sadece göstermek sahip olmak istiyorum PHP comments.With yardım yapmak için izin veren bir profile sahip.

Bu ben bugüne kadar ne var:

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

(Umarım yukarıda artık yeter örnek kod vermediler çünkü kısmen benim hatam) Ben bu soruyu birkaç kez bugün ve ya kazanılmış muğlak cevaplar istediler ya ben sorguladı, aşağı konuştuk aldık benim yeteneği ya da hakkında anlattı Bir geliştirici işe gitmek için. haha. Yani büyük takdir edilecek bir yukarı ve gelecek geliştirici ile knowlege paylaşmak istiyor, daha deneyimli bir geliştirici iseniz. Afterall Bu sitenin amaçlarından biri değil mi?

Bunu bana açıklamak için zaman yoksa, yolumu bulmama yardımcı olabilir harika bir öğretici veya kaynağa bir bağlantı şaşırtıcı olurdu! teşekkür ederim.

4 Cevap

Satırını değiştirmeyi deneyin:

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

karşı

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

so that the delete link only shows up when the profile belongs karşı the poster.

Burada sorun tam olarak nedir? Eğer düzgün kurmak 'sil' bağlantısını, var gibi şimdi yapmanız gereken tüm bu DeleteComment sayfa oluşturmak olduğunu görünüyor. Onun içinde, böyle bir şey yapardı:

$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

Diğerleri de sen (Örümcekler "tık" olabilir) ben buraya almak gibi hissetmiyorum nedenlerle GET kullanmak POST yerine öneririz olabilir. Ve muhtemelen Kullanıcıların çok ya da bunun gibi bir şey kaydediliyor yapmak isteyeceksiniz. Size bu bilgileri gönderen istemci tarayıcısına bağlıdır çünkü ve REQUEST_URI, ya da sözde güvenilir değildir. Böyle bir oturumda falan son URL'yi kaydederek, bu sorunun üstesinden gelebilirsiniz.

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

bu her zaman doğru neden olmalıdır.

İhtiyacınız benziyor

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

ben de size silme link geçiyoruz id profilin yerine yorumun kendisi kimliği olduğuna dikkat etmelidir. muhtemelen burada bir bütün profili silmek istemiyorum.

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

Bu her zaman doğru olacaktır. Şunu mu demek istediniz:

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

I $prof açmış kullanıcının profili olduğunu varsayarak yaşıyorum. Bu durumda değilse, burada başka bir şey kullanmak gerekir! (Değişkenler o kod örnekleri net değilse, bu bize yardımcı yardımcı olacak ne belirtiniz)

DeleteComment.php bu yeniden kontrol emin olun - herhangi bir düğme var sırf bir girişimci korsan kendileri için bir yapmayacağız anlamına gelmez!

Ayrıca,

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

Ben doğru değişkenleri anlamak, $prof oturum açmış kullanıcı profili; değil açıklama. Yani bu açıklama silinecek gerekenleri belirterek bir yol yoktur; yalnızca şu anda oturum açmış kullanıcı. Yerine Yorumun kimliği geçmek isteyebilirsiniz - Eğer şema sonrası yoktu, çünkü ben burada olsa özel kodu veremez.