Mit der Entwicklung des Internets sind Blogs zu einer Plattform geworden, auf der immer mehr Menschen ihr Leben, Wissen und Ideen teilen. Wenn Sie auch ein eigenes Blog erstellen möchten, erfahren Sie in diesem Artikel, wie Sie mit PHP und SQLite ein einfaches Blog erstellen.
Bevor wir mit der Erstellung eines Blogs beginnen, müssen wir die Funktionen bestimmen, die wir erreichen möchten. Zum Beispiel:
Wir Sie müssen PHP und SQLite installieren, um ein Blog zu erstellen. Hier verwenden wir XAMPP, das PHP und SQLite integriert. XAMPP kann unter https://www.apachefriends.org/download.html heruntergeladen werden.
Bevor wir einen Blog erstellen, müssen wir eine Datenbank erstellen, um Blogbeiträge zu verwalten. Wir können SQLite verwenden, um eine Datenbank zu erstellen. In der XAMPP-Systemsteuerung können Sie nach dem Start der Apache- und MySQL-Dienste mit phpMyAdmin eine SQLite-Datenbank erstellen.
Klicken Sie in phpMyAdmin auf Datenbanken, geben Sie den Datenbanknamen und den Zeichensatz ein, z. B. blog, utf8mb4_general_ci, und klicken Sie dann auf die Schaltfläche Erstellen, um die Datenbank zu erstellen.
Nach dem Erstellen der Datenbank müssen wir die Datenbank initialisieren. Erstellen Sie eine Tabelle in der Blog-Datenbank, um Blog-Beitragsinformationen zu speichern. Sie können die folgende SQL-Anweisung verwenden:
CREATE TABLE IF NOT EXISTS `posts` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `title` varchar(255) NOT NULL, `content` text, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP );
Diese SQL-Anweisung erstellt eine Tabelle mit dem Namen „posts“. Die Tabelle enthält vier Felder: „id“, „title“, „content“ und „created_at“. Unter diesen ist id der Primärschlüssel und wird automatisch erhöht; content ist der Inhalt und kann leer sein; der Standardwert ist der aktuelle Uhrzeit.
Jetzt können wir mit dem Schreiben von PHP-Code beginnen. Zuerst erstellen wir eine Datei namens index.php. In dieser Datei können wir die Liste der Blogbeiträge anzeigen. Der folgende PHP-Code kann verwendet werden:
<?php $db = new SQLite3('blog.db'); $results = $db->query('SELECT * FROM posts ORDER BY created_at DESC'); while ($row = $results->fetchArray()) { ?> <article> <h2><a href="post.php?id=<?php echo $row['id']; ?>"><?php echo $row['title']; ?></a></h2> <p><?php echo $row['content']; ?></p> <time datetime="<?php echo $row['created_at']; ?>"><?php echo $row['created_at']; ?></time> </article> <?php } ?>
Dieser PHP-Code verwendet die SQLite3-Erweiterung, um eine Verbindung zu der zuvor erstellten SQLite-Datenbank herzustellen. Verwenden Sie die Abfrageanweisung, um alle Artikel in der Beitragstabelle abzurufen und sie in absteigender Reihenfolge nach Erstellungszeit zu sortieren. Verwenden Sie dann eine While-Schleife, um den Titel, den Inhalt und die Erstellungszeit jedes Artikels in ein Artikel-Tag einzufügen. Verwenden Sie das Tag „a“ im Titel, um den Titel mit der Artikeldetailseite zu verknüpfen.
Im vorherigen Schritt haben wir die Anzeige der Blogartikelliste erstellt, müssen aber auch die Anzeige der Blogartikeldetailseite implementieren. Wir können eine Datei namens post.php erstellen, um die Details eines einzelnen Blog-Beitrags anzuzeigen.
<?php $id = intval($_GET['id']); $db = new SQLite3('blog.db'); $stmt = $db->prepare('SELECT * FROM posts WHERE id=:id'); $stmt->bindParam(':id', $id, SQLITE3_INTEGER); $result = $stmt->execute(); $row = $result->fetchArray(); ?> <article> <h2><?php echo $row['title']; ?></h2> <p><?php echo $row['content']; ?></p> <time datetime="<?php echo $row['created_at']; ?>"><?php echo $row['created_at']; ?></time> </article>
Dieser PHP-Code ruft die von der post.php-Seite übergebene Artikel-ID ab, verwendet dann die Abfrageanweisung, um die Artikelinformationen der angegebenen ID abzurufen, und zeigt den Artikeltitel, den Inhalt und die Erstellungszeit im Artikel-Tag an.
Jetzt haben wir die Anzeige der Blog-Artikelliste und der Detailseite implementiert, müssen aber auch die Funktionen zum Erstellen, Bearbeiten und Löschen von Blog-Artikeln implementieren. Dies kann mit dem folgenden Code erreicht werden:
Artikel erstellen:
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $title = $_POST['title']; $content = $_POST['content']; $db = new SQLite3('blog.db'); $stmt = $db->prepare('INSERT INTO posts(title, content) VALUES(:title, :content)'); $stmt->bindParam(':title', $title, SQLITE3_STRING); $stmt->bindParam(':content', $content, SQLITE3_TEXT); $stmt->execute(); header('Location: index.php'); exit(); } ?> <form method="POST" action=""> <div> <label>Title</label> <input type="text" name="title" /> </div> <div> <label>Content</label> <textarea name="content"></textarea> </div> <div> <button type="submit">Create</button> </div> </form>
Artikel bearbeiten:
<?php $id = intval($_GET['id']); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $title = $_POST['title']; $content = $_POST['content']; $db = new SQLite3('blog.db'); $stmt = $db->prepare('UPDATE posts SET title=:title, content=:content WHERE id=:id'); $stmt->bindParam(':title', $title, SQLITE3_STRING); $stmt->bindParam(':content', $content, SQLITE3_TEXT); $stmt->bindParam(':id', $id, SQLITE3_INTEGER); $stmt->execute(); header('Location: post.php?id=' . $id); exit(); } $db = new SQLite3('blog.db'); $stmt = $db->prepare('SELECT * FROM posts WHERE id=:id'); $stmt->bindParam(':id', $id, SQLITE3_INTEGER); $result = $stmt->execute(); $row = $result->fetchArray(); ?> <form method="POST" action=""> <div> <label>Title</label> <input type="text" name="title" value="<?php echo $row['title']; ?>" /> </div> <div> <label>Content</label> <textarea name="content"><?php echo $row['content']; ?></textarea> </div> <div> <button type="submit">Save</button> </div> </form>
Artikel löschen:
<?php $id = intval($_GET['id']); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $db = new SQLite3('blog.db'); $stmt = $db->prepare('DELETE FROM posts WHERE id=:id'); $stmt->bindParam(':id', $id, SQLITE3_INTEGER); $stmt->execute(); header('Location: index.php'); exit(); } $db = new SQLite3('blog.db'); $stmt = $db->prepare('SELECT * FROM posts WHERE id=:id'); $stmt->bindParam(':id', $id, SQLITE3_INTEGER); $result = $stmt->execute(); $row = $result->fetchArray(); ?> <p>Are you sure you want to delete "<?php echo $row['title']; ?>"?</p> <form method="POST" action=""> <button type="submit">Delete</button> <a href="post.php?id=<?php echo $id; ?>">Cancel</a> </form>
Abschließend müssen wir Benutzerauthentifizierungs- und Berechtigungskontrollfunktionen implementieren . In einem einfachen Blog können wir HTTP_BASIC_AUTH verwenden, um die Benutzerauthentifizierung zu implementieren. Benutzer müssen sich anmelden, bevor sie Blogbeiträge erstellen, bearbeiten und löschen können. Sie können den folgenden Code verwenden, um dies zu erreichen:
<?php if ($_SERVER['PHP_AUTH_USER'] != 'admin' || $_SERVER['PHP_AUTH_PW'] != 'password') { header('WWW-Authenticate: Basic realm="My Blog"'); header('HTTP/1.0 401 Unauthorized'); echo 'You must be authorized to access this page.'; exit(); } ?>
Fügen Sie diesen Code einfach vorne auf der Seite ein, die eine Berechtigungskontrolle benötigt. Dieser Code prüft, ob der Benutzername und das Passwort im HTTP-Header korrekt sind. Wenn sie falsch sind, wird der Statuscode 401 Unauthorized zurückgegeben und ein Anmeldefeld angezeigt, in dem der Benutzer aufgefordert wird, sich erneut anzumelden.
Bisher haben wir einen einfachen Blog erstellt. Anhand dieses Beispiels können wir die grundlegende Verwendung von PHP und SQLite verstehen und erfahren, wie PHP zum Implementieren einer einfachen Anwendung verwendet wird. Wenn Sie mehr über PHP erfahren möchten, können Sie sich die offizielle PHP-Dokumentation und PHP-Online-Tutorials ansehen.
Das obige ist der detaillierte Inhalt vonErstellen Sie ein einfaches Blog: mit PHP und SQLite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!