0

私は学校のプロジェクトのゲストブックをやっています。私ができたことは、その中の投稿を削除することです。残念ながら、削除のために送信ボタンをダブルクリックすると、すべての投稿が削除されます。

必要なのは、投稿に対応するボタンを押したときに、単一の投稿 (削除する投稿または投稿行全体) を削除することです)。私は少し立ち往生しているので、どんな助けもとてもいいです!

ゲストブック ページのコードは次のとおりです。

<!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 に答える