搜索
首页后端开发php教程用PHP制作新闻管理系统,动脑学起来吧!!!(包括前台后台)

你知道基于PHP的新闻发布系统该如如何用代码书写出来吗?想必好多大学生期末考试都会让你们用PHP开发一些系统之类的,还不赶快学起来!!!

用PHP制作新闻管理系统,动脑学起来吧!!!(包括前台后台)

二、 需求分析

1、 软件功能

新闻发布系统(News Release System or Content Management System)又叫做内容管理系统CMS(Content Management System),是一个基于网络的新闻发布和管理的管理系统,它是基于B/S模式的系统,本系统可以几乎完成新闻发布的所有功能。随着网络新闻发布系统的使用,网络充当了一个比电视报纸更重要的新闻媒介的功能。

我们对此系统的设计便是实现这个系统功能的前提。首先是提供一个发布的功能和新闻分类管理。其次,实现用户交互,用户可以参加对新闻的评论。最后要实现对这个新闻发布的综合管理,方便管理员的管理。

要实现这个庞大的功能,我们先对用户权限进行划分,不同的用户有着不同的权限。游客浏览者(没有登陆的)进入到新闻发布系统的主页面,可以浏览所有的相关新闻,查看他人的评论。但是没有任何特殊的特权。对于已经注册的浏览者(用户)不仅拥有游客浏览者的全部功能,还可以对某个新闻进行发表评论。最后是管理员,他拥有权限最高,他可以管理所有的新闻,以及新闻分类。可以增加和修改新的新闻分类,也可以增加和修改新的新闻内容。

2、 软件界面

根据新闻发布系统应具有的基本功能以及参考用户对新闻发布系统的要求我们将这个新闻发布系统进行功能模块上的划分,以方便逐个功能的实现。同时用户在使用中也非常方便,直观。因此经过我们反复的分析和设计,我们将这个新闻发布系统分为9大功能模块。详细的功能模块名称如下:

1)新闻分类浏览模块

2)新闻检索模块

3)用户登陆后发表新闻评论模块

(4)用户的登陆与注册模块

(5)管理员后台新闻发布模块

(6)管理员后台新闻管理模块

(7)管理员后台新闻类别添加模块

(8)管理员后台新闻类别管理模块

9)管理员后台评论审核模块

三、 软件设计

1、 数据库设计

数据库设计是CMS系中数据库设计的核心。 数据库设计直接决定CMS系统的功能流程和运行系统的效率。因此,数据库的设计则需要深思熟虑。务求做到兼顾新闻发布系统的各项功能。

数据库设计如下的数据项:

(1)新闻类别:类别ID、类别名称。

2)用户信息:用户ID、用户名、登录密码。

(3)管理员信息:管理员ID、用户名、登录密码、职业。(只能通过操控数据库添加管理员)

(4)新闻发布:新闻ID、发布的管理员ID、类别ID、题目、图片URL、内容、发布时间、点击次数、附件URL。

(5)评论信息:评论ID、用户ID、新闻ID、评论内容、评论时间、审核状态、发布者IP。

create database news;

use news;

create table category(

     category_id int auto_increment primary key,

     name char(20) not null

);

create table users(

     user_id int auto_increment primary key,

     name char(20) not null,

     password char(32)

);

create table admin(

     admin_id int auto_increment primary key,

     admin char(20) not null,

     apassword char(20),

     position char(20)

);

create table news(

     news_id int auto_increment primary key,

     admin_id int,

     category_id int,

     title char(100) not null,

     picture char(50),

     content text,

     publish_time char(30),

     clicked int,

     attachment char(100),

     constraint FK_news_admin foreign key (admin_id) references admin(admin_id),

     constraint FK_news_category foreign key (category_id) references category(category_id)

);

create table review(

     review_id int auto_increment primary key,

     user_id int,

     news_id int,

     content text,

     publish_time datetime,

     state char(10),

     ip char(15),

     constraint FK_review_users foreign key (user_id) references users(user_id),

     constraint FK_review_news foreign key (news_id) references news(news_id)

);

2、 软件设计

新闻发布系统分为前台和后台两个部分。对于前台操作者来说,CMS系统的前台页面是他们可以看见的部分,所以要求前台的操作尽可能直观方便。 用户打开前台的页面就可轻松地浏览相关新闻,可以进直接对新闻进行查询,直接浏览所查询的相关新闻。同时可以针对新闻的不同分类,浏览不同类型的新闻。注册用户可以通过登陆界面登陆。用户成功登陆后,将有评论权限,当用户浏览一些新闻以后需要对新闻进行评论时,只要进入新闻相应的评论版中添加自己要评论的内容,即可成功添加。同时返回可以继续浏览其他人的评论。

对于后台管理,管理员不仅拥有操作前台所有功能的权限,还可以进行网站的全面管理。具体来说,在新闻管理中,管理员可以设定和添加没有的新闻分类,以便在前台的网页中显示新闻的分类,同时也可以对已有的新闻分类进行修改,同时管理员可以增加和删除新闻。保证网站的动态性。其次,管理员就是对新闻的文章进行综合管理,例如评论的审核等。

四、 软件实现

(1)新闻分类浏览模块

浏览新闻是所有用户都具有的最基本的权限,为了方便用户对新闻的快捷浏览,我们设计了新闻的分类浏览功能。用户只要进入新闻发布系统的主页,要想浏览哪一类新闻,只需在首页中的新闻分类的名称上点击,即可弹出要浏览的这一类新闻的所有新闻。并且按照新闻发布的时间的先后顺序来排列所有新闻。在打开的这一类新闻的新闻列表中,用户只需在点击相应的要看的新闻标题,即可快速的浏览此新闻的详细内容。包括新闻的标题,新闻的详细内容,新闻的来源,新闻的发布时间以及点击次数等。因此,为那些喜欢关注哪一类新闻的用户提供了方便。与此同时,此新闻发布系统还增加了两个新闻浏览的模块。一个是根据新闻的点击次数给用户列出关注度最高的新闻。即点击次数最高的几个新闻。 另一个是根据管理员所发布新闻的时间给用户列出最新的新闻。

因此,通过这个3块新闻浏览的功能模块可以满足不同用户的不同需求。

1.jpg.png核心代码:

<section>

<p id="yule" class="heading">娱乐</p>

<p class="content">

<ul class="list">

<?php

$sql= "select * from news where category_id=1";

$newsRes = mysql_query($sql);

while($news = mysql_fetch_array($newsRes)){

echo"<li><a href=&#39;content.php?news_id=".$news[0]."&#39;>$news[3]</a></li>";

}

?>

</ul>

</p>

</section>

(2)新闻检索模块

为了方便用户快速的浏览想要浏览的新闻,我们为此新闻发布系统设计一个新闻的检索功能。新闻检索就是用户只要在此新闻发布系统的主页中找到新闻检索的输入框,然后在此查询输入框中输入要查询新闻的关键字,然后提交到数据库中。数据库在进行数据的匹配,然后返回给用户要查询的新闻内容。这种检索方式比较方便,只要新闻中包含了用户输入的关键字,那么所匹配的新闻都会列表显示出来。因此,用户就可以直观地浏览要浏览的新闻,为用户节约时间,避免不必要的浏览操作。

 2.png核心代码:

$sql="select * from news where title like &#39;%{$find}%&#39; order by news_id limit {$num} , $fnum";

//echo $sql;

$result=mysql_query($sql);

while($row=mysql_fetch_array($result)) {

$sqls="select name from category where category_id={$row[&#39;category_id&#39;]}";

$selected=mysql_query($sqls);

$a=mysql_result($selected,0);

$b=$row[&#39;news_id&#39;];

            echo "<tr>";

            echo "<td style=&#39;color:white;&#39;>{$a}</td>";

            echo "<td style=&#39;color:white;&#39;><a href=content.php?news_id=$b style=&#39;color:white;&#39;>{$row[&#39;title&#39;]}</td>";

            echo "</tr>";

        }

(3)用户登陆后发表新闻评论模块

对于用户可以登录,登录以后可以继续浏览相应的新闻,不同的是登录后的用户比普通的游客用户权限更高。登录后的用户可以在浏览新闻内容的时候对新闻进行发表自己的新闻评论。在评论版中用户可以相互交流。形成一个互动的平台。

 3.png核心代码:

<?php header("Content-type:text/html;charset=utf-8");

    $server=@mysql_connect("localhost", "root", "")or die("数据库连接失败!");

    mysql_query("SET NAMES &#39;UTF8&#39;");

    $dblink=@mysql_select_db("news") or die("选择当前数据库失败!");

  $newsid=$_GET[&#39;news_id&#39;];

  //echo &#39;<script>alert(&#39;.$newsid.&#39;);</script>&#39;;

  $sql="select * from news where  news_id =".$newsid;

  $rs=mysql_query($sql);

  while($rows=mysql_fetch_array($rs)){

  $title = $rows[&#39;title&#39;];

  $content = $rows[&#39;content&#39;];

  $picture = $rows[&#39;picture&#39;];

  }

  $sql="select * from review where  state=&#39;已审核&#39; and news_id =".$newsid;

  $rs=mysql_query($sql);

  @$userid=$_SESSION[&#39;user_id&#39;];

?>

(4)用户的登陆与注册模块

限制用户的权限,用户登录的模块是必不可少的。在正常账户和密码都正确的情况下可以正常登录,普通用户选择用户登陆,而管理员选择管理员登陆。同时可以注册为用户。

 

用PHP制作新闻管理系统,动脑学起来吧!!!(包括前台后台)

用PHP制作新闻管理系统,动脑学起来吧!!!(包括前台后台)

核心代码:

<p class="box_lg">

<p class="box_tit">

<a href="" class="close">x</a>

<H3>登录账号</H3>

</p>

<p class="box_con">

<form action="login.php" method="post">

<p>

<select name="usertype">

<option value="普通用户">普通用户</option>

<option value="管理员">管理员</option>

</select>

</p>

<p>

用户名:<input type="text" name="name" size="11"/><br/>

</p>

<p>

密 码 :<input type="password" name="password" size="11"/><br/>

</p>

<p class="log">

<input type="submit" name="login" value="登录">

</p>

<span>

<a href="#" id="ljzc">立即注册</a>

</span>

</form>

</p>

</p>

<p class="box_zc">

<p class="box_tit">

<a href="" class="close">x</a>

<H3>注册账号</H3>

</p>

<p class="box_con">

<form action="adduser.php" method="post">

<p>

用户名:<input type="text" name="name" size="11"/><br/>

</p>

<p>

密 码 :<input type="password" name="password" size="11"/><br/>

</p>

<p>

确认密码:<input type="password" name="repassword" size="11"/><br/>

</p>

<p class="zc">

<input type="submit" name="zhuce" value="注册">

</p>

<span>

<a href="#" id="ljdl">立即登录</a>

</span>

</form>

</p>

</p>

(5)管理员后台新闻发布模块

新闻发布模块对于新闻发布系统来说是最主要的一个模块。本系统的新闻发布系统模块中发布的信息包括了新闻作者,新闻标题,新闻图片,新闻内容,新闻来源,新闻发布的时间以及用户点击次数等。管理员用户可以通过后台的新闻发布页面填写相关的内容,然后点击发布新闻,即可将自己的新闻发布出去。新闻发布的过程简单易行,新闻由管理员在后台直接发布,无需验证和批准直接可以在新闻发布系统的主页面上显示最新的新闻内容。

 6.png核心代码:

<?php

include_once("functions/database.php");

get_connection();

$result_set = mysql_query("select * from category");

close_connection();

while($row = mysql_fetch_array($result_set)){

?>

     <option value="<?php echo $row[&#39;category_id&#39;];?>"><?php echo $row[&#39;name&#39;];?></option>

<?php

}

?>

(6)管理员后台新闻管理模块

管理员将新闻发布以后,难免有出错或者需要修改的时候。因此在设计后台的时候针对此需要,我们设计了管理员后台新闻管理模块。管理模块是对已经发布出去的新闻进行修改编辑或者删除。同时也是新闻发布系统管理新闻的最基本的功能。 此权限也只能是管理员才可以对此进行操作,对于游客身份的用户和已经登录的会员用户则均不可以对此进行操作。

 7.png核心代码:

<?php

include_once("functions/database.php");

$news_id = $_GET["news_id"];

get_connection();

$result_news = mysql_query("select * from news where news_id=$news_id");

$result_category = mysql_query("select * from category");

close_connection();

$news = mysql_fetch_array($result_news);

?>

(7)管理员后台新闻类别添加模块

为了满足用户对新闻的分类浏览,我们设计了新闻的分类浏览功能。因此,在后台的管理中我们首先要建立管理员后台新闻类别添加的模块。管理员要发布的新闻是有一定的分类的。首先管理员要添加自己所要发布新闻的新闻分类,以便在以后发布新闻的时候可以根据已经添加的新闻分类,自然地将需要发布的新闻进行分类。同时网页中的新闻分类里也显示已发布的新闻。这样用户在针对哪一类的新闻进行浏览时,可以在第一时间看到最新的新闻。 如果网站需要宽展发布一些新类型的新闻,就可以动态的控制不同种类的新闻,可以做到新闻种类无限扩展。因此,此模块可以大大的增加动态网站的动态性,避免过的冗余操作。为管理员减少工作量,方便维护整个庞大的网站。

 8.png

核心代码:

<?php

include_once("functions/database.php");

$category = $_POST["category"];

//$content = htmlspecialchars(addslashes($_POST["content"]));

 

$sql = "insert into category values(null,&#39;$category&#39;)";

get_connection();

mysql_query($sql);

close_connection();

echo  "该类别成功添加到数据库表中!";

?>

(8)管理员后台新闻类别管理模块

为了满足用户对新闻的分类浏览,我们设计了无限新闻类型添加的功能。与此同时,新闻的分类管理也是必不可少的一项模块。我们针对已经添加过的新闻进行修改或者直接删除,保证管理员可以对新闻分类进行任意操作。动态的控制整个新闻发布系统的新闻分类功能。同时也满足了不同用户对不同类型的新闻浏览的要求。使得这个新闻发布系统更有实用性,更人性化的管理。

 9.png

核心代码:

<?php

include_once("functions/database.php");

 

$category_id = $_POST["category_id"];

$name = $_POST["category_name"];

 

$sql = "update category set name=&#39;$name&#39; where category_id=$category_id";

get_connection();

mysql_query($sql);

close_connection();

echo "新闻类别修改成功!";

?>

9)管理员后台评论审核模块

使管理员审核评论,防止存在非法或者违规的评论存在。

 10.png

核心代码:

<?php

include_once("functions/database.php");

$review_id = $_GET["review_id"];

$sql = "update review set state=&#39;已审核&#39; where review_id=$review_id";

get_connection();

mysql_query($sql);

close_connection();

header("Location:review_list.php");

?>

  推荐学习:《PHP视频教程》           

以上是用PHP制作新闻管理系统,动脑学起来吧!!!(包括前台后台)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:CSDN。如有侵权,请联系admin@php.cn删除
您如何防止与会议有关的跨站点脚本(XSS)攻击?您如何防止与会议有关的跨站点脚本(XSS)攻击?Apr 23, 2025 am 12:16 AM

要保护应用免受与会话相关的XSS攻击,需采取以下措施:1.设置HttpOnly和Secure标志保护会话cookie。2.对所有用户输入进行输出编码。3.实施内容安全策略(CSP)限制脚本来源。通过这些策略,可以有效防护会话相关的XSS攻击,确保用户数据安全。

您如何优化PHP会话性能?您如何优化PHP会话性能?Apr 23, 2025 am 12:13 AM

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显着提升应用在高并发环境下的效率。

什么是session.gc_maxlifetime配置设置?什么是session.gc_maxlifetime配置设置?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceIsiseededeedeedeedeedeedeedto to to avoidperformance andununununununexpectedLogOgouts.3)

您如何在PHP中配置会话名?您如何在PHP中配置会话名?Apr 23, 2025 am 12:08 AM

在PHP中,可以使用session_name()函数配置会话名称。具体步骤如下:1.使用session_name()函数设置会话名称,例如session_name("my_session")。2.在设置会话名称后,调用session_start()启动会话。配置会话名称可以避免多应用间的会话数据冲突,并增强安全性,但需注意会话名称的唯一性、安全性、长度和设置时机。

您应该多久再生一次会话ID?您应该多久再生一次会话ID?Apr 23, 2025 am 12:03 AM

会话ID应在登录时、敏感操作前和每30分钟定期重新生成。1.登录时重新生成会话ID可防会话固定攻击。2.敏感操作前重新生成提高安全性。3.定期重新生成降低长期利用风险,但需权衡用户体验。

如何在PHP中设置会话cookie参数?如何在PHP中设置会话cookie参数?Apr 22, 2025 pm 05:33 PM

在PHP中设置会话cookie参数可以通过session_set_cookie_params()函数实现。1)使用该函数设置参数,如过期时间、路径、域名、安全标志等;2)调用session_start()使参数生效;3)根据需求动态调整参数,如用户登录状态;4)注意设置secure和httponly标志以提升安全性。

在PHP中使用会议的主要目的是什么?在PHP中使用会议的主要目的是什么?Apr 22, 2025 pm 05:25 PM

在PHP中使用会话的主要目的是维护用户在不同页面之间的状态。1)会话通过session_start()函数启动,创建唯一会话ID并存储在用户cookie中。2)会话数据保存在服务器上,允许在不同请求间传递数据,如登录状态和购物车内容。

您如何在子域中分享会议?您如何在子域中分享会议?Apr 22, 2025 pm 05:21 PM

如何在子域名间共享会话?通过设置通用域名的会话cookie实现。1.在服务器端设置会话cookie的域为.example.com。2.选择合适的会话存储方式,如内存、数据库或分布式缓存。3.通过cookie传递会话ID,服务器根据ID检索和更新会话数据。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),