Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Buat blog mudah: menggunakan PHP dan SQLite

Buat blog mudah: menggunakan PHP dan SQLite

WBOY
WBOYasal
2023-06-21 13:23:07897semak imbas

Dengan perkembangan Internet, blog telah menjadi platform untuk lebih ramai orang berkongsi kehidupan, pengetahuan dan idea mereka. Jika anda juga ingin membuat blog sendiri, maka artikel ini akan memperkenalkan cara menggunakan PHP dan SQLite untuk membuat blog yang mudah.

  1. Tentukan keperluan

Sebelum kita mula membuat blog, kita perlu tentukan fungsi yang ingin kita capai. Contohnya:

  • Buat catatan blog
  • Edit catatan blog
  • Padam catatan blog
  • Tunjukkan senarai catatan blog
  • Tunjukkan blog Butiran artikel
  • Pengesahan pengguna dan kawalan kebenaran
  1. Pasang PHP dan SQLite

Kami perlu memasang PHP dan SQLite untuk membuat blog . Di sini kami menggunakan XAMPP, yang mempunyai integrasi PHP dan SQLite. XAMPP boleh dimuat turun di https://www.apachefriends.org/download.html.

  1. Buat pangkalan data

Sebelum mencipta blog, kita perlu mencipta pangkalan data untuk mengurus catatan blog. Kita boleh menggunakan SQLite untuk mencipta pangkalan data. Dalam panel kawalan XAMPP, selepas memulakan perkhidmatan Apache dan MySQL, anda boleh menggunakan phpMyAdmin untuk mencipta pangkalan data SQLite.

Dalam phpMyAdmin, klik Pangkalan Data, masukkan nama pangkalan data dan set aksara, seperti blog, utf8mb4_general_ci, dan kemudian klik butang Cipta untuk mencipta pangkalan data.

  1. Memulakan pangkalan data

Selepas mencipta pangkalan data, kita perlu memulakan pangkalan data. Buat jadual dalam pangkalan data blog untuk menyimpan maklumat catatan blog. Anda boleh menggunakan pernyataan SQL berikut:

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

Pernyataan SQL ini mencipta jadual bernama siaran Jadual mengandungi empat medan: id, tajuk, kandungan dan create_at. Antaranya, id ialah kunci utama dan ditambah secara automatik masa semasa.

  1. Buat Halaman Blog

Sekarang kita boleh mula menulis kod PHP. Mula-mula, kami mencipta fail bernama index.php. Dalam fail ini, kita boleh memaparkan senarai catatan blog. Kod PHP berikut boleh digunakan:

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

Kod PHP ini menggunakan sambungan SQLite3 untuk menyambung ke pangkalan data SQLite yang kami buat sebelum ini. Gunakan pernyataan pertanyaan untuk mendapatkan semua artikel dalam jadual siaran dan isikannya dalam susunan menurun mengikut masa penciptaan. Kemudian, gunakan gelung sementara untuk meletakkan tajuk, kandungan dan masa penciptaan setiap artikel ke dalam teg artikel. Gunakan teg a dalam tajuk untuk memautkan tajuk ke halaman butiran artikel.

  1. Buat halaman butiran artikel

Dalam langkah sebelumnya, kami mencipta paparan senarai artikel blog, tetapi kami juga perlu melaksanakan paparan artikel blog halaman butiran. Kita boleh mencipta fail yang dipanggil post.php untuk memaparkan butiran satu catatan 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>

Kod PHP ini memperoleh id artikel yang diluluskan dari halaman post.php, kemudian menggunakan pernyataan pertanyaan untuk mendapatkan maklumat artikel id yang ditentukan, dan memaparkan tajuk artikel, kandungan dan masa penciptaan dalam artikel tag.

  1. Fungsi menambah, memadam dan mengubah suai artikel

Kini kami telah melaksanakan paparan senarai artikel blog dan halaman butiran, tetapi kami juga perlu melaksanakan penciptaan, menyunting dan menyunting artikel blog. Ini boleh dicapai menggunakan kod berikut:

Buat artikel:

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

Edit artikel:

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

Padam artikel:

<?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. Pengesahan pengguna dan kawalan kebenaran

Akhir sekali, kami perlu melaksanakan fungsi pengesahan pengguna dan kawalan kebenaran. Dalam blog ringkas, kami boleh menggunakan HTTP_BASIC_AUTH untuk melaksanakan pengesahan pengguna. Pengguna dikehendaki log masuk sebelum mereka boleh membuat, mengedit dan memadam catatan blog. Anda boleh menggunakan kod berikut untuk mencapai ini:

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

Letakkan kod ini di hadapan halaman yang memerlukan kawalan kebenaran. Kod ini akan menyemak sama ada nama pengguna dan kata laluan dalam pengepala HTTP adalah betul Jika ia salah, ia akan mengembalikan kod status 401 Tanpa Kebenaran dan muncul kotak log masuk yang meminta pengguna log masuk semula.

Setakat ini, kami telah mencipta blog yang ringkas. Melalui contoh ini, kita boleh memahami penggunaan asas PHP dan SQLite, dan cara menggunakan PHP untuk melaksanakan aplikasi mudah. Jika anda ingin mengetahui lebih lanjut tentang PHP, anda boleh merujuk kepada dokumentasi rasmi PHP dan tutorial dalam talian PHP.

Atas ialah kandungan terperinci Buat blog mudah: menggunakan PHP dan SQLite. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn