想用php写个简单的个人博客系统?
程序员文章站
2024-04-04 11:03:29
...
不用wordpress之类现成的东西,想自己手写,主要是想巩固一下暑假期间看的PHP的基础知识。
先肯定是建数据表嘛,常规来说,一般分几个表?管理员信息表,博文表,评论表,文章分类表....这里感觉不知道该建哪些表,我看很多博客都还会有一些文章标签,文章归档,浏览榜,热门评论之类的东西。
参考了一些教程,整个博客用MVC方式,这个大致上还知道一下,没有用过thinkphp之类的框架,不知有没专业人士能够大致上说一下具体的结构。
1. 到github找个好的项目阅读源代码
2. 找个好的教程对着练习 数据库是一切数据的基础,按你自己的需求来进行设计
首先你需要从产品设计着手,先想好你这个程序将会涉及到有哪些功能点(后台管理?多用户共存?多层分类?单文章多分类?标签?文章标题图?相册系统?)。
比如你需要多用户系统,那就需要member表,如果需要后台管理,则有两种选择,单独建立administrtor表或者管理员也存在member表,后者的话,可以再创建一个member_type表来定义用户类型。初级的都是诸如此类的问题,设计出来的数据库能满足你的产品需求就可以了。再进一步的话,用户可以自定义字段,那需要一个member_custom表之类的,以key->value形式来存储用户自定义的属性。
刚开始设计笨拙一点没关系,主要可以体会到数据库这类比较死板的数据存储形式的局限性,在你有需求变动的时候就可能要做更多的修改工作才能满足。所谓经验就是你在之后再做这类工作的时候知道这些设计的长短处(更灵活的设计意味着程序需要更多更巧妙的代码),做出相应的取舍。 我真的发现终于有个问题有资格回答了。
首先,我觉得,刚上手的话,还是别拿别人的改,你可能看都看不懂。
这学期有个软件课,然后我们组我定的就是写个博客,本人了解知识:mvc框架基本流程(不是某个mvc框架哦),php基本知识,数据库操作,html+css部分知识。
好了,于是我开始动手了,虽说是一个组,但是我是一个人完成的。
先写框架:
index.php入口文件:路径常量,自动加载,分发参数。
框架文件:包含数据库操作,工厂模式生成单例模型,基础控制器,基础模型类。
应用程序文件:平台文件夹:model,view,controller。
一个博客,要分为前台和后台。
前台主要是访问者看到的,就是:首页,文章分享,笔记分享,自我介绍,留言板,搜索框,文章归档,标签栏等功能。(核心就是mysql查询,加过滤显示,加前端排版,sql注入等)
后台就是管理员操作:登录,控制session,文章的CRUD,笔记的CRUD,留言板的CRUD,退出等功能。(后台的核心,操作数据库,过滤数据,转义数据,注入等)
后台最重要的,你看别人的博客,文章里是有图的是吧,然而单纯的用areatext是没法做到的,百度一下,不对谷歌一下:富文本编辑器。然后有很多免费的富文本编辑器,下载一个好点的,有文档有说明,照着做,然后插入的数据记得过滤,不过你在前台显示的时候,不是要显示标题和部分内容吗,做好过滤:可能用到strip_tags,mb_substr等等。
然后基本的博客就出来了,不过漏洞应该是多的数都数不清,怎么办呢,继续学习吧题主,一起加油! 数据库设计
1 用户表:用户编号,登录名,密码,显示名,用户分类编号(0:普通用户,1:管理员),其它
2 文章分类表:分类编号,分类名,父分类编号(0:根分类(可实现无限级)),排序,其它(如是否显示)
3 文章表:文章编号,标题,摘要图,摘要内容,内容,发表时间,统计(浏览,评论等),发表人(用户编号),文章分类(分类编号),关键词(,词一,词二,词三,),排序,置顶,推荐,其它(如是否显示,是否允许评论等)
4 导航表:导航编号,导航显示名称(如:我爱php),导航地址(如:php,如果用php框架可以实现用户访问http://www.test.com/php,程序自动读取本导航对应文章分类下的数据),文章分类(分类编号)
5 评论表:评论编号,评论内容,发表时间,所属文章编号,所属父评论编号(可以实现无限级评论),发表人编号
6 文件表:文件编号,文件存放地址(一般绝对于根目录如:/file/img/1.jpg),文件大小,文件类型(0:图片,1:文件(一般是只能下载的txt,rar,zip...),2:video....),发表人编号
7 站点基本信息表:浏览器title,keyword等..
大致程序结构
1 共用部分:用户登录,用户退出,用户个人页面,用户上传文件管理等
2 后台部分(仅管理员可以进入):上述所有数据库表的增,删,改,查
3 前台部分:按所有可用导航写文章列表与文章详细页面,文章详细列评论与添加评论;可能还会出现普通用户个人中心(方便用户看自己看过哪些文章,在哪些文章发过评论)
框架选择
我学过tp,但我用的是ci,因为我觉得ci非常简单,ci的手册写得非常好
可能涉及到的难点
编辑器,现在大多用百度ueditor,但我还是用的是kindeditor
难点在于这些编辑器本身不自带用户文件管理(例如用户发评论的编辑器中选择插入图片,可以选择以前已上传的图片),你得自己改动原编辑器代码,实现这个功能 谢邀,你说不想用wordpress我,想自己动手写,巩固基础知识。
你不知道改写一次前人的作品收获远远大于自己瞎折腾吗? 博客的框架结构都是大同小异,不管是php还是其它编程语言,如果你想独立完成一个博客系统,你可以参考成熟的博客系统,Wordpress比较大,建议你从emlog入手,先学会用,再学会二次开发,再来独立开发,取其精华,加上自己的创新,你将获益匪浅。 以自己的能力去写一个强大的程序很难的,何况你是学习,你可以用来写个新闻发布系统试试,其实原理也都差不多,主要是安全方面。 可以加我QQ,我发我的数据库设计文件给你。。4873473.。
我自己写的一个博客系统,用TP3.2.3写的,最近想用YII框架重写。。 我感觉我可能会被全世界最好的一帮程序员围攻,但是本着分享的精神,发给题主一个链接,谨慎点击,https://github.com/tornadoweb/tornado/tree/master/demos/blog PHP只需要用来输出数据库,以json格式输出文章等内容,靠js原生解析
评论引用外部现成的评论系统,如:多说、QDiscuss等
为什么很多东西都要依赖后端,有必要吗?
先肯定是建数据表嘛,常规来说,一般分几个表?管理员信息表,博文表,评论表,文章分类表....这里感觉不知道该建哪些表,我看很多博客都还会有一些文章标签,文章归档,浏览榜,热门评论之类的东西。
参考了一些教程,整个博客用MVC方式,这个大致上还知道一下,没有用过thinkphp之类的框架,不知有没专业人士能够大致上说一下具体的结构。
回复内容:
如果你只是练手。建议:1. 到github找个好的项目阅读源代码
2. 找个好的教程对着练习 数据库是一切数据的基础,按你自己的需求来进行设计
首先你需要从产品设计着手,先想好你这个程序将会涉及到有哪些功能点(后台管理?多用户共存?多层分类?单文章多分类?标签?文章标题图?相册系统?)。
比如你需要多用户系统,那就需要member表,如果需要后台管理,则有两种选择,单独建立administrtor表或者管理员也存在member表,后者的话,可以再创建一个member_type表来定义用户类型。初级的都是诸如此类的问题,设计出来的数据库能满足你的产品需求就可以了。再进一步的话,用户可以自定义字段,那需要一个member_custom表之类的,以key->value形式来存储用户自定义的属性。
刚开始设计笨拙一点没关系,主要可以体会到数据库这类比较死板的数据存储形式的局限性,在你有需求变动的时候就可能要做更多的修改工作才能满足。所谓经验就是你在之后再做这类工作的时候知道这些设计的长短处(更灵活的设计意味着程序需要更多更巧妙的代码),做出相应的取舍。 我真的发现终于有个问题有资格回答了。
首先,我觉得,刚上手的话,还是别拿别人的改,你可能看都看不懂。
这学期有个软件课,然后我们组我定的就是写个博客,本人了解知识:mvc框架基本流程(不是某个mvc框架哦),php基本知识,数据库操作,html+css部分知识。
好了,于是我开始动手了,虽说是一个组,但是我是一个人完成的。
先写框架:
index.php入口文件:路径常量,自动加载,分发参数。
框架文件:包含数据库操作,工厂模式生成单例模型,基础控制器,基础模型类。
应用程序文件:平台文件夹:model,view,controller。
一个博客,要分为前台和后台。
前台主要是访问者看到的,就是:首页,文章分享,笔记分享,自我介绍,留言板,搜索框,文章归档,标签栏等功能。(核心就是mysql查询,加过滤显示,加前端排版,sql注入等)
后台就是管理员操作:登录,控制session,文章的CRUD,笔记的CRUD,留言板的CRUD,退出等功能。(后台的核心,操作数据库,过滤数据,转义数据,注入等)
后台最重要的,你看别人的博客,文章里是有图的是吧,然而单纯的用areatext是没法做到的,百度一下,不对谷歌一下:富文本编辑器。然后有很多免费的富文本编辑器,下载一个好点的,有文档有说明,照着做,然后插入的数据记得过滤,不过你在前台显示的时候,不是要显示标题和部分内容吗,做好过滤:可能用到strip_tags,mb_substr等等。
然后基本的博客就出来了,不过漏洞应该是多的数都数不清,怎么办呢,继续学习吧题主,一起加油! 数据库设计
1 用户表:用户编号,登录名,密码,显示名,用户分类编号(0:普通用户,1:管理员),其它
2 文章分类表:分类编号,分类名,父分类编号(0:根分类(可实现无限级)),排序,其它(如是否显示)
3 文章表:文章编号,标题,摘要图,摘要内容,内容,发表时间,统计(浏览,评论等),发表人(用户编号),文章分类(分类编号),关键词(,词一,词二,词三,),排序,置顶,推荐,其它(如是否显示,是否允许评论等)
4 导航表:导航编号,导航显示名称(如:我爱php),导航地址(如:php,如果用php框架可以实现用户访问http://www.test.com/php,程序自动读取本导航对应文章分类下的数据),文章分类(分类编号)
5 评论表:评论编号,评论内容,发表时间,所属文章编号,所属父评论编号(可以实现无限级评论),发表人编号
6 文件表:文件编号,文件存放地址(一般绝对于根目录如:/file/img/1.jpg),文件大小,文件类型(0:图片,1:文件(一般是只能下载的txt,rar,zip...),2:video....),发表人编号
7 站点基本信息表:浏览器title,keyword等..
大致程序结构
1 共用部分:用户登录,用户退出,用户个人页面,用户上传文件管理等
2 后台部分(仅管理员可以进入):上述所有数据库表的增,删,改,查
3 前台部分:按所有可用导航写文章列表与文章详细页面,文章详细列评论与添加评论;可能还会出现普通用户个人中心(方便用户看自己看过哪些文章,在哪些文章发过评论)
框架选择
我学过tp,但我用的是ci,因为我觉得ci非常简单,ci的手册写得非常好
可能涉及到的难点
编辑器,现在大多用百度ueditor,但我还是用的是kindeditor
难点在于这些编辑器本身不自带用户文件管理(例如用户发评论的编辑器中选择插入图片,可以选择以前已上传的图片),你得自己改动原编辑器代码,实现这个功能 谢邀,你说不想用wordpress我,想自己动手写,巩固基础知识。
你不知道改写一次前人的作品收获远远大于自己瞎折腾吗? 博客的框架结构都是大同小异,不管是php还是其它编程语言,如果你想独立完成一个博客系统,你可以参考成熟的博客系统,Wordpress比较大,建议你从emlog入手,先学会用,再学会二次开发,再来独立开发,取其精华,加上自己的创新,你将获益匪浅。 以自己的能力去写一个强大的程序很难的,何况你是学习,你可以用来写个新闻发布系统试试,其实原理也都差不多,主要是安全方面。 可以加我QQ,我发我的数据库设计文件给你。。4873473.。
我自己写的一个博客系统,用TP3.2.3写的,最近想用YII框架重写。。 我感觉我可能会被全世界最好的一帮程序员围攻,但是本着分享的精神,发给题主一个链接,谨慎点击,https://github.com/tornadoweb/tornado/tree/master/demos/blog PHP只需要用来输出数据库,以json格式输出文章等内容,靠js原生解析
评论引用外部现成的评论系统,如:多说、QDiscuss等
为什么很多东西都要依赖后端,有必要吗?