php thinkphp3 开发新闻网站+后台管理系统

本文详细介绍了使用ThinkPHP3.2.3开发新闻网站及后台管理系统的全过程,包括需求分析、框架理解、目录结构解析、数据库设计、后台登录验证、页面跳转逻辑、模型操作、数据处理及Ajax交互等关键步骤,旨在帮助读者掌握基于ThinkPHP的Web开发技能。
摘要由CSDN通过智能技术生成

一:需求分析

ThinkPHP(3.2.3完整版)了解:mvc开发框架.

1.主目录结构:

index.php访问入口配置文件

Application应用目录里面放的是每个模块文件。

Public资源文件目录,里面存放的是css,js,image等静态文件

ThinkPHP里面是框架的核心内容



2:ThinkPHP目录


Common存放的函数,在任何地方都可以直接使用,所以是公共函数目录

Conf里面是核心配置目录

thinkphp.php是框架入口文件,其它目录就不再深入了解了。

结合Thinkphp文档学习。

3.框架的运行原理

首先运行项目时会先到index.php入口配置文件.


进入入口文件首先 require './ThinkPHP/ThinkPHP.php'; 这样就会加载Thinkphp目录下的核心内容功能。

第一次执行这个项目后Application目录(一开始里面没内容)下会自动生成这三个目录。Common(公用目录),Home目录是模块目录。应用模块下的目录Common公共函数模块,Conf配置模块,Controller(实现业务模块)控制器模块,Model模型模块,View视图模块。

数据库:(需要索引的字段要创建索引)

cms_admin(后台用户表):admin_id(主键),username(创建索引),password,lastloginip,lastlogintime,email,realname,status;

cms_menu(菜单表):menu_id(主键),name,parentid(创建索引),m,c,f,listorder(创建索引),status,type.

cms_news(文章表主表):news_id.........等

cms_news_content(文章详情表):id,......等----主要存放文章主表的文章内容。

cms_position(推荐位表):id,name,status,descripation,createtime,update_time等

cms_postion_content(推荐位详情表):id,postion_id,title,thumb,url,news_id,listorder,status...等----主要存放推荐位里面存放的文章内容。

根据自己的需要设计文章内容。


后台管理系统

在Application下创建目录Admin:


首先创建后台登录url:localhost/thinkphp/index.php?m=admin&c=login&f=index


提交按钮的表单内容:

<div class="s_center container col-lg-6 ">


    <form class="form-signin" enctype="multipart/form-data"  method="post" >
      <h2 class="form-signin-heading">请登录</h2>
      <label class="sr-only">用户名</label>
      <input type="text"  class="form-control" name="username" placeholder="请填写用户名" required autofocus>
      <br />
      <label  class="sr-only">密码</label>
      <input type="password" name="password" id="inputPassword" class="form-control" placeholder="密码" required>
      <br />
      <button class="btn btn-lg btn-primary btn-block" type="button" οnclick="login.check()" ">登录</button>
    </form>


</div>

<script src="__PUBLIC__/js/jquery.js"></script>
<script src="__PUBLIC__/js/dialog/layer.js"></script>
<script src="__PUBLIC__/js/dialog.js"></script>
<script src="__PUBLIC__/js/admin/login.js"></script>


上面要记得引入这些js文件才能实现对应的逻辑。__PUBLIC__指的是public目录。

dialog.js的内容为:

var dialog = {
    // 错误弹出层
    error: function(message) {
        layer.open({
            content:message,
            icon:2,
            title : '错误提示',
        });
    },


    //成功弹出层
    success : function(message,url) {
        layer.open({
            content : message,
            icon : 1,
            yes : function(){
                location.href=url;
            },
        });
    },


    // 确认弹出层
    confirm : function(message, url) {
        layer.open({
            content : message,
            icon:3,
            btn : ['是','否'],
            yes : function(){
                location.href=url;
            },
        });
    },


    //无需跳转到指定页面的确认弹出层
    toconfirm : function(message) {
        layer.open({
            content : message,
            icon:3,
            btn : ['确定'],
        });
    },
}



login.js的内容为

/**
 * 前端登录业务类
 * @author singwa
 */
var login = {   //声明login类 ,方法check:function(){....}
    check : function() {
        // 获取登录页面中的用户名 和 密码
        var username = $('input[name="username"]').val();
        var password = $('input[name="password"]').val();


        if(!username) {

            dialog.error('用户名不能为空');   //弹出窗口,一般我们使用alter,这里对弹出做了美化.使用Layer(网)layer.layui.cpm

        }
        if(!password) {
            dialog.error('密码不能为空');  //同上。dialog.js
        }


        var url = "/thinkphp/admin.php?&c=login&a=check"; //请求地址是m=admin,c=login,a=check
        var data = {'username':username,'password':password};//请求的数据内容
        // 执行异步请求  $.post
        $.post(url,data,function(result){    /jquery的方法,post异步请求,请求后收到服务器的返回结果result.
            if(result.status == 0) {//判断返回状态
                return dialog.error(result.message);//弹出错误信息
            }
            if(result.status == 1) {
                return dialog.success(result.message, '/thinkphp/admin.php?');//跳转到后台m=admin,c=index,f=index.
            }


        },'JSON');//JSON数据格式发送。


    }
}

在Controller创建控制器LoginController.class.php文件内容为:

<?php
namespace Admin\Controller;  //声明类的命名空间通过路径加载类
use Think\Controller;     //控制器需要继承的父类引入
class LoginController extends Controller {
 
    public function index(){   //引入方法名index
       if(session('adminUser')){//检查session 判断用户是否已经登陆了,如果未登录回到登录页面。如果登录跳转到后台页面

           $this->redirect('/thinkphp/admin.php?c=index');

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值