Maison  >  Article  >  développement back-end  >  Créer un blog simple : en utilisant PHP et SQLite

Créer un blog simple : en utilisant PHP et SQLite

WBOY
WBOYoriginal
2023-06-21 13:23:07897parcourir

Avec le développement d'Internet, les blogs sont devenus une plateforme permettant à de plus en plus de personnes de partager leur vie, leurs connaissances et leurs idées. Si vous souhaitez également créer votre propre blog, cet article vous expliquera comment utiliser PHP et SQLite pour créer un blog simple.

  1. Déterminer les besoins

Avant de commencer à créer un blog, nous devons déterminer les fonctions que nous souhaitons réaliser. Par exemple :

  • Créer un article de blog
  • Modifier un article de blog
  • Supprimer un article de blog
  • Afficher la liste des articles de blog
  • Afficher les détails de l'article de blog
  • Authentification des utilisateurs et contrôle des autorisations
  1. Installer PHP et SQLite

Nous besoin d'installer PHP et SQLite pour créer un blog. Ici, nous utilisons XAMPP, qui intègre PHP et SQLite. XAMPP peut être téléchargé sur https://www.apachefriends.org/download.html.

  1. Créer une base de données

Avant de créer un blog, nous devons créer une base de données pour gérer les articles du blog. Nous pouvons utiliser SQLite pour créer une base de données. Dans le panneau de configuration XAMPP, après avoir démarré les services Apache et MySQL, vous pouvez utiliser phpMyAdmin pour créer une base de données SQLite.

Dans phpMyAdmin, cliquez sur Bases de données, entrez le nom de la base de données et le jeu de caractères, tels que blog, utf8mb4_general_ci, puis cliquez sur le bouton Créer pour créer la base de données.

  1. Initialiser la base de données

Après avoir créé la base de données, nous devons initialiser la base de données. Créez un tableau dans la base de données du blog pour stocker les informations sur les articles de blog. Vous pouvez utiliser l'instruction SQL suivante :

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

Cette instruction SQL crée une table nommée posts. La table contient quatre champs : id, title, content et create_at. Parmi eux, id est la clé primaire et est auto-incrémenté ; title est le titre et ne peut pas être vide ; content est le contenu et peut être vide ; create_at est l'heure de création et ne peut pas être vide. heure actuelle.

  1. Créer une page de blog

Maintenant, nous pouvons commencer à écrire du code PHP. Tout d’abord, nous créons un fichier appelé index.php. Dans ce fichier, nous pouvons afficher la liste des articles du blog. Le code PHP suivant peut être utilisé :

<?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
  }
?>

Ce code PHP utilise l'extension SQLite3 pour se connecter à la base de données SQLite que nous avons créée précédemment. Utilisez l'instruction de requête pour obtenir tous les articles de la table posts et triez-les par ordre décroissant par heure de création. Ensuite, utilisez une boucle while pour mettre le titre, le contenu et l'heure de création de chaque article dans une balise d'article. Utilisez la balise a dans le titre pour lier le titre à la page de détails de l'article.

  1. Créer la page de détails de l'article

Dans l'étape précédente, nous avons créé l'affichage de la liste des articles du blog, mais nous devons également implémenter l'affichage de la page de détails des articles du blog. Nous pouvons créer un fichier appelé post.php pour afficher les détails d'un seul article de blog.

<?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>

Ce code PHP obtient l'identifiant de l'article transmis par la page post.php, puis utilise l'instruction de requête pour obtenir les informations sur l'article de l'identifiant spécifié et affiche le titre de l'article, le contenu et l'heure de création dans la balise d'article.

  1. Créer la fonction d'ajout, de suppression et de modification d'articles

Maintenant, nous avons implémenté l'affichage de la liste des articles de blog et de la page de détails, mais nous devons également implémenter les fonctions de création, d'édition et de suppression d'articles de blog. Ceci peut être réalisé en utilisant le code suivant :

Créer un article :

<?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>

Modifier l'article :

<?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>

Supprimer l'article :

<?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>
  1. Authentification des utilisateurs et contrôle des autorisations

Enfin, nous devons implémenter des fonctions d'authentification des utilisateurs et de contrôle des autorisations. . Dans un simple blog, nous pouvons utiliser HTTP_BASIC_AUTH pour implémenter l'authentification des utilisateurs. Les utilisateurs doivent se connecter avant de pouvoir créer, modifier et supprimer des articles de blog. Vous pouvez utiliser le code suivant pour y parvenir :

<?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();
  }
?>

Mettez simplement ce code au début de la page qui nécessite un contrôle d'autorisation. Ce code vérifiera si le nom d'utilisateur et le mot de passe dans l'en-tête HTTP sont corrects. S'ils sont incorrects, il renverra un code d'état 401 non autorisé et affichera une boîte de connexion demandant à l'utilisateur de se reconnecter.

Jusqu'à présent, nous avons créé un blog simple. Grâce à cet exemple, nous pouvons comprendre l'utilisation de base de PHP et SQLite, et comment utiliser PHP pour implémenter une application simple. Si vous souhaitez en savoir plus sur PHP, vous pouvez vous référer à la documentation officielle PHP et aux tutoriels PHP en ligne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn