Rumah > Artikel > pembangunan bahagian belakang > Buat blog mudah: menggunakan PHP dan SQLite
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.
Sebelum kita mula membuat blog, kita perlu tentukan fungsi yang ingin kita capai. Contohnya:
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.
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.
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.
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.
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.
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>
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!