ホームページ バックエンド開発 PHPチュートリアル シンプルなブログを作成する: PHP と SQLite を使用する

シンプルなブログを作成する: PHP と SQLite を使用する

Jun 21, 2023 pm 01:23 PM
php ブログ sqlite

インターネットの発展に伴い、ブログはますます多くの人々が自分の生活、知識、アイデアを共有するためのプラットフォームになりました。自分のブログも作成したい場合は、この記事で PHP と SQLite を使用して簡単なブログを作成する方法を紹介します。

  1. 要件を決定する

ブログの作成を開始する前に、実現したい機能を決定する必要があります。例:

  • ブログ投稿の作成
  • ブログ投稿の編集
  • ブログ投稿の削除
  • ブログ投稿リストの表示
  • 表示ブログ記事の詳細
  • ユーザー認証と権限制御
  1. PHP と SQLite のインストール

ブログを作成するには、PHP と SQLite をインストールする必要があります。 。ここでは、PHP と SQLite が統合された XAMPP を使用します。 XAMPP は https://www.apachefriends.org/download.html からダウンロードできます。

  1. データベースの作成

ブログを作成する前に、ブログ投稿を管理するためのデータベースを作成する必要があります。 SQLite を使用してデータベースを作成できます。 XAMPP コントロール パネルで、Apache サービスと MySQL サービスを開始した後、phpMyAdmin を使用して SQLite データベースを作成できます。

phpMyAdmin で、「データベース」をクリックし、データベース名と文字セット (blog、utf8mb4_general_ci など) を入力し、「作成」ボタンをクリックしてデータベースを作成します。

  1. データベースの初期化

データベースを作成した後、データベースを初期化する必要があります。ブログデータベースにテーブルを作成して、ブログ投稿情報を保存します。次の SQL ステートメントを使用できます:

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
);
ログイン後にコピー

この SQL ステートメントは、posts という名前のテーブルを作成します。このテーブルには、id、title、content、created_at の 4 つのフィールドが含まれます。このうち、id は主キーであり、自動インクリメントされます。title はタイトルであり、空にすることはできません。content はコンテンツであり、空にすることはできます。created_at は作成時刻であり、空にすることはできません。デフォルト値は現在の時刻。

  1. ブログ ページの作成

これで、PHP コードの作成を開始できます。まず、index.php というファイルを作成します。このファイルでは、ブログ投稿のリストを表示できます。次の PHP コードを使用できます。

<?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
  }
?>
ログイン後にコピー

この PHP コードでは、SQLite3 拡張機能を使用して、前に作成した SQLite データベースに接続します。クエリ ステートメントを使用して、posts テーブル内のすべての記事を取得し、作成時間の降順に並べ替えます。次に、while ループを使用して、各記事のタイトル、内容、作成時刻を記事タグに入力します。タイトルにaタグを使用すると、タイトルから記事詳細ページにリンクします。

  1. 記事詳細ページの作成

前のステップではブログ記事一覧の表示を作成しましたが、ブログ記事の表示も実装する必要があります。詳細ページ。 post.php というファイルを作成して、1 つのブログ投稿の詳細を表示できます。

<?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>
ログイン後にコピー

この PHP コードは、post.php ページから渡された記事 ID を取得し、クエリ ステートメントを使用して指定された ID の記事情報を取得し、記事のタイトル、内容、作成時刻を表示します。鬼ごっこ。

  1. 記事の追加・削除・修正機能の作成

これでブログ記事一覧と詳細ページの表示は実装できましたが、作成機能も実装する必要があります。 、ブログ記事の編集、削除機能。これを実現するには、次のコードを使用します。

記事の作成:

<?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>
ログイン後にコピー

記事の編集:

<?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>
ログイン後にコピー

記事の削除:

<?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. User認証と権限制御
#最後に、ユーザー認証と権限制御機能を実装する必要があります。単純なブログでは、HTTP_BASIC_AUTH を使用してユーザー認証を実装できます。ユーザーは、ブログ投稿を作成、編集、削除する前にログインする必要があります。これを実現するには、次のコードを使用します。

<?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();
  }
?>
ログイン後にコピー
このコードを、権限制御が必要なページの先頭に配置します。このコードは、HTTP ヘッダーのユーザー名とパスワードが正しいかどうかをチェックし、間違っている場合は、401 Unauthorized ステータス コードを返し、ユーザーに再ログインを求めるログイン ボックスをポップアップ表示します。

これまで、簡単なブログを作成してきました。この例を通じて、PHP と SQLite の基本的な使用法と、PHP を使用して簡単なアプリケーションを実装する方法を理解できます。 PHP についてさらに詳しく知りたい場合は、PHP 公式ドキュメントと PHP オンライン チュートリアルを参照してください。

以上がシンプルなブログを作成する: PHP と SQLite を使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles