1

学校の課題用のゲストブックがあります。投稿を削除する必要がありますが、ログオンしているユーザーだけが自分の投稿を削除できます。

削除構文はどのように記述できますか? 私は次のようなことを考えていました:

if ($_GET['Deletebutton']) {

mysql_query("DELETE FROM guestbook WHERE $id ='PostID' AND $username='Username'");

}

下のページに私のコードを投稿しています!

<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']);

            if ($title && $message) {

                //Lägg till i databasen
                mysql_query("INSERT INTO guestbook (Title,Post,Username) VALUES  ('$title','$message','$username')");

                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'><input type='button' name='Raderaknapp' value='Ta bort  inlägget' />
    </div></div><hr />";

                if ($_GET['Raderaknapp']) {

                    mysql_query("DELETE FROM guestbook WHERE $id ='PostID' AND  $username='Username'");

                    echo "Inlägget har tagits bort!";
                }
            }
        }
        else
            echo "Inga inlägg hittades.";
        mysql_close();
    } 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

2 に答える 2

2

試す:

mysql_query("DELETE FROM guestbook WHERE PostID = '".$id."' AND Username = '".$name."'");

ドキュメントを削除

于 2013-02-13T18:27:45.130 に答える
1

mysql_*新しいコードで関数を使用しないでください。それらはもはや保守されておらず、公式に廃止されています。代わりに準備済みステートメントについて学び、 PDOまたはMySQLiを使用してください。 PDOの優れたチュートリアルです

ただし、これを続行する場合は.

  if ($_GET['Deletebutton']) {
    $id = mysql_real_escape_string($_POST['id']);
    $username = mysql_real_escape_string($_POST['username']);


    mysql_query("DELETE FROM guestbook WHERE id ='".$id."' AND username='".$username."'")
 or die("My SQL can not perform this task right now");

    }
于 2013-02-13T18:31:55.867 に答える