下面是"简单的php新闻发布系统教程"的完整攻略:
简介
这个教程将会介绍如何用PHP语言、MySQL数据库和HTML/CSS基础知识制作一个完整的新闻发布系统。
技能要求
在学习之前,你需要掌握以下技能:
- 基本的PHP语言知识,如变量、函数和数组等
- MySQL数据库基本操作知识,如建立数据表,插入数据、更新数据和查询数据等
- HTML、CSS基础知识,如标签、类别、样式等
开始制作新闻发布系统
以下是本制作教程的步骤:
第一步:创建数据库和数据表
首先,在MySQL数据库中创建一个名为"news_system"的数据库,然后创建一个名为"news"的数据表。该数据表应该包含新闻的标题、内容、发布日期和作者等信息。示例代码如下:
CREATE DATABASE news_system;
USE news_system;
CREATE TABLE news (
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(255) NOT NULL,
content text NOT NULL,
author varchar(50) NOT NULL,
release_date timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (id)
);
第二步:创建开始页面
创建一个名为"index.php"的文件作为网站的开始页面。在这个页面上,你可以添加一些链接到其他页面。示例代码如下:
<!DOCTYPE html>
<html>
<head>
<title>News System</title>
</head>
<body>
<h1>News System</h1>
<ul>
<li><a href="add_news.php">Add News</a></li>
<li><a href="list_news.php">List News</a></li>
</ul>
</body>
</html>
第三步:创建添加新闻页面(add_news.php)
这个页面将用于向数据库中添加新闻信息。首先,我们需要创建一个表单,以便用户可以输入新闻的标题、内容和作者。示例代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Add News</title>
</head>
<body>
<h1>Add News</h1>
<form method="post" action="save_news.php">
<label>Title:</label>
<input type="text" name="title" required><br><br>
<label>Content:</label>
<textarea name="content" required></textarea><br><br>
<label>Author:</label>
<input type="text" name="author" required><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
然后,我们需要创建一个保存新闻信息的PHP脚本(save_news.php)。在该脚本中,我们将使用PHP和MySQL来将新闻信息保存到数据库中。示例代码如下:
<?php
// 获取用户输入的新闻信息
$title = $_POST['title'];
$content = $_POST['content'];
$author = $_POST['author'];
// 连接数据库
$conn = mysqli_connect('localhost', 'username', 'password', 'news_system');
// 检查数据库连接是否成功
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// 添加新闻信息到数据表
$sql = "INSERT INTO news (title, content, author) VALUES ('$title', '$content', '$author')";
if (mysqli_query($conn, $sql)) {
echo "News added successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
// 关闭数据库连接
mysqli_close($conn);
?>
第四步:创建新闻列表页面(list_news.php)
这个页面将显示所有添加到数据库中的新闻信息。我们将用一个PHP脚本从数据库中获取新闻信息,并使用HTML将这些信息呈现为一个列表。示例代码如下:
<!DOCTYPE html>
<html>
<head>
<title>List News</title>
</head>
<body>
<h1>List News</h1>
<?php
// 连接数据库
$conn = mysqli_connect('localhost', 'username', 'password', 'news_system');
// 检查数据库连接是否成功
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// 获取所有新闻信息
$sql = "SELECT * FROM news";
$result = mysqli_query($conn, $sql);
// 循环呈现每条新闻信息
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "<h3>" . $row["title"] . "</h3>";
echo "<p>" . $row["content"] . "</p>";
echo "<p><b>Author:</b> " . $row["author"] . "</p>";
echo "<p><b>Release Date:</b> " . $row["release_date"] . "</p>";
echo "<hr>";
}
} else {
echo "No news found";
}
// 关闭数据库连接
mysqli_close($conn);
?>
<br>
<a href="add_news.php">Add News</a>
</body>
</html>
示例说明
以下是本教程中一个示例的应用场景:
示例一:在新闻列表页面中添加分页功能
在list_news.php中,我们可以添加分页功能,以便将大量的新闻信息分页显示。这个过程需要用到PHP中的分页类库。首先,下载并引入分页类库:
require_once('Pager/Pager.php');
然后,修改获取新闻信息的代码,以便仅获取当前页的信息:
// 获取当前页码
$page = $_GET['page'] ?? 1;
$page = (int) $page;
// 每页显示的记录数
$per_page = 10;
// 计算起始记录数
$start = ($page - 1) * $per_page;
// 按页码获取新闻信息
$sql = "SELECT * FROM news LIMIT $start, $per_page";
$result = mysqli_query($conn, $sql);
最后,在新闻列表页面中添加分页链接:
$pager_options = array(
'mode' => 'Sliding',
'perPage' => $per_page,
'delta' => 2,
'totalItems' => $total_news_count,
);
$pager = & Pager::factory($pager_options);
echo $pager->links;
示例二:添加用户验证功能
我们可以添加一个用户验证功能,以防止未经授权的用户访问"add_news.php"页面。使用PHP中的会话控制,我们可以轻松实现这个功能。首先,在登录页面中,我们需要添加一个表单,以便用户输入他们的用户名和密码。示例代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form method="post" action="validate_user.php">
<label>Username:</label>
<input type="text" name="username" required><br><br>
<label>Password:</label>
<input type="password" name="password" required><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
然后,我们需要创建一个PHP脚本(validate_user.php),用于验证用户输入的用户名和密码。如果验证成功,则保存用户信息到会话中,并跳转到"add_news.php"页面。否则,返回到登录页面。示例代码如下:
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
// 检查用户名和密码是否正确
if ($username === 'admin' && $password === 'admin') {
// 将用户信息保存到会话中
$_SESSION['user'] = array(
'username' => 'admin',
'role' => 'admin'
);
header('Location: add_news.php');
} else {
echo "Invalid username or password";
}
?>
最后,在"add_news.php"页面中,我们需要检查会话中的用户信息是否存在。如果存在,则允许用户添加新闻信息。否则,跳转到登录页面。示例代码如下:
<?php
session_start();
// 检查用户是否登录
if (!isset($_SESSION['user'])) {
header('Location: login.php');
exit();
}
// ...
?>
至此,我们就完成了一个简单的PHP新闻发布系统教程,希望对你有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单的php新闻发布系统教程 - Python技术站