Heim > Backend-Entwicklung > PHP-Problem > So löschen Sie einen Beitrag in PHP, indem Sie auf „Löschen' klicken

So löschen Sie einen Beitrag in PHP, indem Sie auf „Löschen' klicken

PHPz
Freigeben: 2023-03-29 10:30:31
Original
500 Leute haben es durchsucht

Mit der Popularität des Internets ist die Website-Erstellung zunehmend zu einer gängigen Online-Aktivität geworden. Auf Websites ist der Aufbau von Foren besonders beliebt. Viele Leute posten ihre Meinung zu bestimmten Dingen im Forum oder stellen Fragen und warten auf Antworten von Internetnutzern. Aber viele Leute sind vielleicht noch nicht mit der Backend-Verwaltung vertraut und wissen nicht, wie sie einige Funktionen auf der Website durch Code implementieren können. In diesem Artikel wird kurz auf ein häufiges Bedürfnis eingegangen: wie man einen Beitrag im Forum löscht, indem man auf die Schaltfläche „Löschen“ klickt.

Hier gehen wir davon aus, dass Sie bereits über gewisse PHP-Grundlagen verfügen und die Website-Entwicklung durchführen können. Damit Sie den Code besser verstehen und verwenden können, ist dieser Artikel in zwei Teile unterteilt. Der erste Teil führt Sie kurz dazu, den Code zu verstehen, der zum Implementieren der Funktion erforderlich ist, einschließlich Front-End-Code und Back-End-Code. Im zweiten Teil wird das Implementierungsprinzip dieses Teils des Codes ausführlich erläutert, in der Hoffnung, Ihnen dies zu ermöglichen das Wissen besser erfassen.

1. Code-Implementierung

1. Front-End-Code

Im Front-End-Code müssen wir für jeden Benutzer des Beitrags eine Schaltfläche zum Löschen bereitstellen. Im Allgemeinen befindet sich die Schaltfläche zum Löschen häufig in der oberen rechten Ecke des Beitrags. Die spezifische Implementierung ist wie folgt:

<a href="delete_post.php?post_id=XXX" class="delete-button">删除</a>
Nach dem Login kopieren

In diesem Code fügen wir der Schaltfläche „Löschen“ ein href-Attribut hinzu, das auf eine Datei mit dem Namen delete_post.php-Hintergrunddatei verweist. Wir übergeben auch einen post_id-Parameter im Wert des href-Attributs, der die Nummer des zu löschenden Beitrags darstellt. href 属性,该属性指向了一个名为 delete_post.php 的后台文件。我们还在 href 属性的值中传入了一个 post_id 参数,该参数表示了待删除的帖子的编号。

上述代码应该被嵌套在帖子的 HTML 代码中。在用户浏览帖子的时候就能够看到这个可以删除帖子的按钮。

2.后台代码

在后台代码中,我们需要通过 delete_post.php 文件来判断用户有没有权限删除帖子,如果有权限,就把该贴从数据库中删除。具体实现方式如下所示:

// 1.检查用户是否已经登录
session_start();
if (!isset($_SESSION["user_id"])) {
  echo "对不起,您还没有登录!";
  exit;
}

// 2.检查帖子是否存在
if (!isset($_GET["post_id"])) {
  echo "对不起,您访问的帖子不存在!";
  exit;
}

// 3.获取帖子编号
$post_id = $_GET["post_id"];

// 4.连接到数据库
$pdo = new PDO("mysql:host=localhost;dbname=my_db", "my_username", "my_password");

// 5.检查该用户是否能删除该帖子
$stmt = $pdo->prepare("SELECT user_id FROM posts WHERE post_id = ?");
$stmt->execute(array($post_id));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (count($rows) !== 1 || $rows[0]["user_id"] !== $_SESSION["user_id"]) {
  echo "对不起,您没有权限删除该帖子!";
  exit;
}

// 6.删除帖子
$stmt = $pdo->prepare("DELETE FROM posts WHERE post_id = ?");
$stmt->execute(array($post_id));

echo "帖子删除成功!";
Nach dem Login kopieren

在上述代码中,我们依次检查了用户是否已经登录、该贴是否存在,并获取了该帖子的编号。然后,我们连接到数据库中,检查该用户是否有权限删除该贴,并最终删除了该帖子。如果过程中出现了任何错误,我们会在网页中输出错误信息。如果一切顺利,我们会输出帖子删除成功的信息。

二、实现原理

1.前台代码实现原理

前台代码实现的核心在于 HTML 中的 <a> 标签。通过为这个标签设置 href 属性可以达到跳转的效果。而通过为这个属性传递参数,就可以在跳转到目标页面的同时,将这些参数传给目标页面。这样,在目标页面的 PHP 脚本中,就可以通过 $_GET 变量获取这些参数了。上述代码中的 delete_post.php 文件,其实就是用来处理这个帖子删除按钮的页面。当用户在前台点击这个按钮的时候,浏览器会跳转到 delete_post.php 文件,并把该帖子的编号传递给这个文件。

需要注意的是,如果这个用户没有登录,那应该在前台代码中提示用户登录,而不是让用户跳转到后台处理。在本文的代码实现中,我们使用了 session 来判断用户是否已经登录。如果 $_SESSION["user_id"] 不存在,那就可以认为用户并没有登录,此时应该输出提示用户登录的信息,而不是跳转到后台页面。

2.后台代码实现原理

后台代码实现的核心是 PHP 中的 PDO 类库。通过使用这个类库,我们可以轻松地连接到 MySQL 数据库,并以安全的方式执行 SQL 语句。

在后台代码中,我们需要做以下几件事情:

1)检查用户是否已经登录。在本文中,我们使用了 session 来存储该用户的登录状态。如果 $_SESSION["user_id"] 不存在,那就可以认为用户并没有登录,此时应该输出提示用户登录的信息。

2)检查帖子是否存在。在获取每个帖子的编号之前,我们需要先判断这个帖子是否真的存在。如果不存在,就应该输出提示该帖子不存在的信息。

3)获取帖子编号。待我们已经确认了帖子存在,可以通过 $_GET 变量获取该帖子的编号。

4)连接到数据库。PHP 中的 PDO 类库提供了许多方法来连接到 MySQL 数据库。我们要做的就是使用这个类库创建一个连接对象,并调用相关方法来执行我们需要的 SQL 语句。

5)检查该用户是否能删除该帖子。这里,我们需要查询数据库中的 posts 表,并检查该帖子是否存在,以及该用户是否有权限删除该帖子。最后,我们使用 prepare 函数来执行预处理语句,并使用 execute 函数执行 SQL 语句。

6)删除帖子。如果该用户有删除帖子的权限,我们就可以使用 DELETE

Der obige Code sollte im HTML-Code des Beitrags verschachtelt sein. Wenn Benutzer Beiträge durchsuchen, wird ihnen diese Schaltfläche zum Löschen von Beiträgen angezeigt. 🎜🎜2. Backend-Code🎜🎜Im Backend-Code müssen wir die Datei delete_post.php verwenden, um festzustellen, ob der Benutzer die Berechtigung zum Löschen des Beitrags hat die Datenbank. Die spezifische Implementierung lautet wie folgt: 🎜rrreee🎜Im obigen Code haben wir überprüft, ob sich der Benutzer angemeldet hat, ob der Beitrag existiert, und die Nummer des Beitrags erhalten. Anschließend stellten wir eine Verbindung zur Datenbank her, überprüften, ob der Benutzer die Berechtigung zum Löschen des Beitrags hatte, und löschten den Beitrag schließlich. Sollten während des Vorgangs Fehler auftreten, geben wir Fehlermeldungen auf der Webseite aus. Wenn alles gut geht, geben wir eine Meldung aus, dass der Beitrag erfolgreich gelöscht wurde. 🎜🎜2. Implementierungsprinzip🎜🎜1. Prinzip der Front-End-Code-Implementierung🎜🎜Der Kern der Front-End-Code-Implementierung liegt im <a>-Tag. Der Sprungeffekt kann durch Setzen des Attributs href für dieses Tag erreicht werden. Durch die Übergabe von Parametern für dieses Attribut können Sie diese Parameter an die Zielseite übergeben, während Sie zur Zielseite springen. Auf diese Weise können diese Parameter im PHP-Skript der Zielseite über die Variable $_GET abgerufen werden. Die Datei delete_post.php im obigen Code ist eigentlich die Seite, die zum Verarbeiten der Schaltfläche „Löschen“ dieses Beitrags verwendet wird. Wenn der Benutzer im Vordergrund auf diese Schaltfläche klickt, springt der Browser zur Datei delete_post.php und übergibt die Beitragsnummer an diese Datei. 🎜🎜Es ist zu beachten, dass, wenn der Benutzer nicht angemeldet ist, der Benutzer aufgefordert werden sollte, sich im Vordergrundcode anzumelden, anstatt ihn zur Hintergrundverarbeitung springen zu lassen. In der Code-Implementierung dieses Artikels verwenden wir session, um festzustellen, ob sich der Benutzer angemeldet hat. Wenn $_SESSION["user_id"] nicht vorhanden ist, kann davon ausgegangen werden, dass der Benutzer nicht angemeldet ist. Zu diesem Zeitpunkt sollte eine Meldung ausgegeben werden, die den Benutzer zur Anmeldung auffordert, anstatt zu springen die Hintergrundseite. 🎜🎜2. Prinzip der Backend-Code-Implementierung🎜🎜Der Kern der Backend-Code-Implementierung ist die PDO-Klassenbibliothek in PHP. Durch die Verwendung dieser Klassenbibliothek können wir problemlos eine Verbindung zur MySQL-Datenbank herstellen und SQL-Anweisungen auf sichere Weise ausführen. 🎜🎜Im Hintergrundcode müssen wir folgende Dinge tun: 🎜🎜1) Überprüfen Sie, ob der Benutzer angemeldet ist. In diesem Artikel verwenden wir session, um den Anmeldestatus des Benutzers zu speichern. Wenn $_SESSION["user_id"] nicht existiert, kann davon ausgegangen werden, dass der Benutzer nicht angemeldet ist, und es sollte eine Meldung ausgegeben werden, die den Benutzer zur Anmeldung auffordert. 🎜🎜2) Überprüfen Sie, ob der Beitrag existiert. Bevor wir die Nummer jedes Beitrags erhalten, müssen wir zunächst feststellen, ob der Beitrag tatsächlich existiert. Wenn er nicht existiert, sollte eine Meldung ausgegeben werden, die darauf hinweist, dass der Beitrag nicht existiert. 🎜🎜3) Holen Sie sich die Beitragsnummer. Nachdem wir bestätigt haben, dass der Beitrag existiert, können wir die Beitragsnummer über die Variable $_GET abrufen. 🎜🎜4) Stellen Sie eine Verbindung zur Datenbank her. Die PDO-Klassenbibliothek in PHP bietet viele Methoden zum Herstellen einer Verbindung zu einer MySQL-Datenbank. Alles, was wir tun müssen, ist, diese Klassenbibliothek zu verwenden, um ein Verbindungsobjekt zu erstellen und die relevanten Methoden aufzurufen, um die benötigten SQL-Anweisungen auszuführen. 🎜🎜5) Prüfen Sie, ob der Benutzer den Beitrag löschen kann. Hier müssen wir die Tabelle posts in der Datenbank abfragen und prüfen, ob der Beitrag existiert und ob der Benutzer die Berechtigung zum Löschen des Beitrags hat. Schließlich verwenden wir die Funktion prepare, um vorbereitete Anweisungen auszuführen, und die Funktion execute, um SQL-Anweisungen auszuführen. 🎜🎜6) Lösche den Beitrag. Wenn der Benutzer die Berechtigung zum Löschen von Beiträgen hat, können wir die Anweisung DELETE verwenden, um den Beitrag aus der Datenbank zu löschen. 🎜

Es ist zu beachten, dass wir beim Ausführen von SQL-Anweisungen in PHP SQL-Injection-Schwachstellen berücksichtigen müssen. Im in diesem Artikel vorgestellten Implementierungscode hat die PDO-Klassenbibliothek standardmäßig vorbereitete Anweisungen aktiviert, und die Parameterbindung wird auch verwendet, um Sicherheitslücken bei der Injektion zu vermeiden.

3. Zusammenfassung

Ich hoffe, dass Sie durch das Studium dieses Artikels bereits verstehen, wie Sie einen Beitrag im Forum löschen, indem Sie auf die Schaltfläche „Löschen“ klicken. Es ist erwähnenswert, dass wir in diesem Artikel nur eine einfache Implementierungsmethode bereitstellen und nicht alle Implementierungsdetails detailliert erläutern. Wenn Sie diesen Wissenspunkt wirklich beherrschen möchten, müssen Sie über ein tieferes Verständnis von PHP und MySQL verfügen. Wir empfehlen Ihnen, einige Tutorials zu PHP und MySQL zu lesen, um diesen Wissenspunkt besser zu beherrschen.

Das obige ist der detaillierte Inhalt vonSo löschen Sie einen Beitrag in PHP, indem Sie auf „Löschen' klicken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage