资讯专栏INFORMATION COLUMN

一个前端写的php博客系统--支持markdown哦

wenhai.he / 768人阅读

摘要:部署的地址我的博客地址起因最近买了个新的域名,同时在阿里云申请了免费的虚拟主机。。。一个前端写的博客系统前台展示后台登录一个前端写的博客系统文章的修改和删除

部署的地址 我的博客地址:http://www.weber.pub/ 起因

最近买了个新的域名,同时在阿里云申请了免费的虚拟主机。。。借此机会就想搞个自己的博客站点,虽然之前也使用了hexo + github 、 WordPress 做过,但是我的阿里云虚拟主机实在是不知道怎么去搞hexo (也许根本就搞不起来,除非自己花钱买主机,哈哈)。。。WordPress总是感觉好笨重,运行起来一股的人到中年,气喘吁吁啊。。。百度之后,typeecho成了首选,但是markdown竟然有问题。。。一口老血。。。自己动手吧。。。

用到的资源 thinkphp

官网
快速入门
参考手册

集成开发环境

phpstudy

Materialize UI框架

中文官网
英文官网

markdown 编辑器

marked
editor

代码高亮

highlightjs

github 地址

项目的github地址

数据库设计

目前来说只用到了两张表,一个是文章表,一个是后台登录的用户表,其中有些字段还没有用到,先写上备用,数据库的设计是仿照青春博客设计

文章表
DROP TABLE IF EXISTS `by_article`;
CREATE TABLE `by_article` (
  `a_id` int(11) NOT NULL AUTO_INCREMENT COMMENT "文章逻辑ID",
  `a_url` varchar(64) DEFAULT "" COMMENT "文章图片",
  `a_title` varchar(128) NOT NULL COMMENT "文章标题",
  `a_remark` varchar(256) DEFAULT "" COMMENT "文章描述",
  `a_keyword` varchar(32) DEFAULT "" COMMENT "文章关键字",
  `pid` int(11) NOT NULL DEFAULT "1" COMMENT "文章类别",
  `a_time` int(10) NOT NULL COMMENT "文章发表时间",
  `a_content` text NOT NULL COMMENT "文章内容",
  `a_view` int(11) NOT NULL DEFAULT "1" COMMENT "文章是否置顶",
  `a_hit` int(11) NOT NULL DEFAULT "1" COMMENT "文章点击量",
  `a_original` int(1) DEFAULT "0",
  `a_from` varchar(16) NOT NULL DEFAULT "1",
  `a_writer` varchar(64) NOT NULL COMMENT "作者",
  `a_ip` varchar(16) NOT NULL,
  PRIMARY KEY (`a_id`),
  KEY `a_title` (`a_title`)
) ENGINE=MyISAM AUTO_INCREMENT=71 DEFAULT CHARSET=utf8 COMMENT="文章表";
用户表
DROP TABLE IF EXISTS `by_user`;
CREATE TABLE `by_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT "用户逻辑Id",
  `name` varchar(32) NOT NULL COMMENT "登陆用户名",
  `password` varchar(32) NOT NULL COMMENT "登陆密码",
  `user` varchar(32) NOT NULL COMMENT "用户名",
  `class` int(11) NOT NULL COMMENT "用户类别",
  `last_time` int(11) NOT NULL COMMENT "用户登陆时间",
  `ip` varchar(16) NOT NULL COMMENT "用户登陆ip",
  PRIMARY KEY (`id`),
  KEY `user` (`user`)
) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COMMENT="用户表";
动手吧 目录结构

ByBlog

Admin 后台目录

Conf 配置文件

Controller 控制器

Model 模型

View 页面

Home 前台目录

Conf 配置文件

Controller 控制器

Model 模型

View 页面

Public 公共资源目录

Css 样式目录

font 、fonts 字体库

Img 图片

js

MarkdownEditor 文章编辑器

Plugin 插件目录

环境的搭建

phpstudy 是集成的开发环境,下载后解压就可以使用。。。thinkphp下载解压后放到phpstudy的www目录下,在浏览器访问该目录即可把thinkphp安装完成。。。详细的操作流程可以自行百度,或者参考我上面发的资源链接。

数据库配置

在Config文件夹下的config.php 文件中添加数据库的配置信息

//"配置项"=>"配置值"
"DB_TYPE"=>"mysql",// 数据库类型
"DB_HOST"=>"127.0.0.1",// 服务器地址
"DB_NAME"=>"",// 数据库名
"DB_USER"=>"",// 用户名
"DB_PWD"=>"",// 密码
"DB_PORT"=>3306,// 端口
"DB_PREFIX"=>"by_",// 数据库表前缀
"DB_CHARSET"=>"utf8",// 数据库字符集
"USER_AUTH_KEY"=>"authId"
后台博客书写功能 页面view



    11
    
    
    
    



文章内容

模型Model
class ArticleModel extends Model {
    public function addArticle($data){
        // 添加文章
        if(M("article")->add($data)){
            return 1;
        }else{
            return 0;
        }
    }
}
控制器
public function insert(){
    $data = array (
        "a_title" => I("post.a_title"),
        "a_keyword" => I("post.a_keyword"),
        "a_remark" => I("post.a_remark"),
        "a_content" => I("post.a_content"),
        "a_time" => time(),
        "a_ip" => get_client_ip(),
    );
    if(D("Article")->addArticle($data)){
        $this->success("发表完成!","lista");
    }else{
        $this->error("发表失败!");
    }
}

如果没有问题的话呢,你就可以看到下面的截图了

后台博客列表功能的实现 视图view



    文章列表页 -- ByBlog
    



文章标题 操作
{$vo.a_title} 20{$vo.a_time|date="y/m/d H:i",###} 编辑 删除
控制器
public function listA(){

    // 文章列表
    // 查询满足要求的总记录数
    $count = M("article")->count();
    $this->assign("count",$count);
    // 实例化分页类 传入总记录数和每页显示的记录数
    $Page  = new ThinkPage($count,10);
    // 分页显示输出
    $show  = $Page->show();
    $article = M("article") ->order("a_id desc") -> field("a_title,a_time") ->limit($Page->firstRow.",".$Page->listRows)->select();
    // 赋值数据集
    $this->assign("list",$article);
    // 赋值分页输出
    $this->assign("page",$show);
    $this->display();
    
}

然后呢你能看到的页面是这个样子的

到目前存在的坑

写个代码不容易,里面自然有几个坑。。。

时间的解码问题
我存到数据库里面的是时间戳,但是经过解码后年份只显示后两位数字,所以我就自己在年份的前面加了20。。。。所以你们就看到了2070这样的时间点是因为当时存的时间戳为空,就成了默认的时间1970。。。但是如果是新编辑的文章还是木有问题的。。。。

后续

代码写的应该有不少问题,还有很多的功能尚未实现,下篇文章将介绍前台的展示和列表以及后台的用户登录问题(目前后台的登录还有点问题尚未解决)。。。php实在不怎么熟悉了,有问题的话欢迎吐槽(但是别喷我啊。。。)

一个前端写的php博客系统2--前台展示+后台登录
一个前端写的php博客系统3--文章的修改和删除

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21831.html

相关文章

  • 一个前端写的php博客系统3--文章的修改和删除

    摘要:写在后面这个简单的博客系统基本功能算是已经完善了,但是其中还有很多值得优化和修改的地方。。。另外篇博文地址一个前端写的博客系统支持哦一个前端写的博客系统前台展示后台登录 部署的地址 我的博客地址:http://www.weber.pub/ github 地址:https://github.com/baiyuming/byblog 文章的修改 文章的修改需要两步,第一步读取文章,第二步更...

    changfeng1050 评论0 收藏0
  • 一个前端写的php博客系统2--前台展示+后台登录

    摘要:前台展示页面首页博客系统前端博客博客系统前端博客发表预留给多说评论侧边预留给多说评论的版块是评论排行,和评论展示。。。一个前端写的博客系统支持哦一个前端写的博客系统文章的修改和删除 部署的演示地址 我的博客地址: http://www.weber.pub 可以查看到具体的站点展示 github 地址:https://github.com/baiyuming/byblog 前台首页展示...

    guyan0319 评论0 收藏0
  • 前端react+redux+koa写的博客推荐

    摘要:搭建的博客曾经用的写的博客,现在看来已经很了,所以用目前最火的框架重构一下。后端重构博客嘛,以前用写的后台,所以略懂一些,作为一个前端开发,目标就是全栈嘛,选用了最为流行的也用了目前最为流行的作为后端配合。 React-Node搭建的博客 曾经用的php+mysql+js写的博客,现在看来已经很low了,所以用目前最火的react+koa框架重构一下。先上地址吧:目前线上版本http:...

    objc94 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<