0

我正在为一个学校项目做一个留言簿。我能够做的是删除其中的帖子。不幸的是,当双击提交按钮进行删除时,它会删除所有帖子。

我需要它做的是在您按下 POST 的相应按钮时删除单个帖子(您要删除的帖子或整个帖子行)。我有点卡住了,所以任何帮助都会非常好!

这是我的留言簿页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0     
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <h1>Välkommen till gästboken!</h1>
    <h2>Posta till Gästboken</h2>
    <form action="home.php" method="post">  
        <table>
            <tr>
              <td>Titel:</td>
              <td><input type="text" name="titel" style="width: 600px;" /></td>
            </tr>
            <tr>
              <td>Inlägg:</td>
              <td><textarea name="inlägg" style="width: 600px; height: 300px;"></textarea></td>
            </tr>
            <tr>
              <td></td>
              <td><input type="submit" name="postknapp" value="Posta" /></td>
            </tr>
        </table>
    </form>
<p>
    <a href="logga_ut.php">Logga ut</a>
<?php
session_start();
$username = $_SESSION['username'];

if($_SESSION['login'] == 1) {    //om sessionen är 1 så

    // Connect to the database
    mysql_connect("localhost", "root", "");
    mysql_select_db("guestbookdatabase");

//******************************************************************//
//Display stuff
echo "<h1>Nuvarande Poster</h1>";

if ($_POST['postknapp']) {
    $title = strip_tags($_POST['titel']);
    $message = strip_tags($_POST['inlägg']);
    $UserID = $_POST['UserID'];

    if ($title && $message) {
         //Lägg till i databasen
         mysql_query("INSERT INTO guestbook (Title,Post,Username,UserID) VALUES  ('$title','$message','$username', $UserID)");
         echo "Ditt inlägg har lagts till i gästboken!";
    } else
        echo "Du har inte fyllt i nödvändig information för att kunna göra ett inlägg.";
}

$query = mysql_query("SELECT * FROM guestbook ORDER BY PostID DESC");
$numrows = mysql_num_rows($query);
if ($numrows > 0){

    while ( $row = mysql_fetch_assoc($query) ) {
         $id = $row['PostID'];
         $name = $row['Username'];
         $title = $row['Title'];
         $message = $row['Post'];
         $date = $row['Timestamp'];

         $message = nl2br($message);

         echo "<div> 
         Av <b>$name</b> vid <b>$date</b><br /> 
         <h2>$title</h2> <p>
         $message  <p>
         <div align = 'right'>
         </div></div><hr />"; 
         ?>
         <form action="home.php" method="get">
         <input type='submit' name='Raderaknapp' value='Ta bort inlägget' />
         </form>
         <?php

        if ($_GET['Raderaknapp']) {
            mysql_query("DELETE FROM guestbook WHERE PostID ='".$id."' AND  Username='".$UserID."'");
            echo "Inlägget har tagits bort!";
        }
    }
} else
    echo "Inga inlägg hittades.";

//*****************************************************************//

mysql_close();
?>

<?php

} else { // om session inte är 1 så 
    echo "Du har INTE tillåtelse till gästboken! Klicka på länken för att logga in!";
?>
    <p>
    <br/><a href="index.html">Till login >></a>
<?php   
}

?> 
4

1 回答 1

1

您的代码字面意思是“如果$_GET['Raderknapp']已设置且非零(换句话说,是真实的),则删除该行”。没有条件$_GET['Raderaknapp'],也没有任何方法可以识别您要删除的行。

于 2013-02-18T16:07:39.097 回答