Code Security Guide -Thinkphp3.2开发

一、Thinkphp安装基础

1.1安装ThinkPHP

Thinkphp ->MVC结构 ->model(数据库) ->view(显示) ->comtrol(逻辑结构控制)

Thinkphp 版本:3.2.3,解开压缩包之后,准备好我们thinkphp需要的文件 ThinkPHP和 index.php

wKg0C2EidAZAMLAABS1IOSWuc784.png

设置index.php配置文件wKg0C2EifmAGYaEAAD72f9WU747.png

测试网站打开效果,在浏览器中输入域名wKg0C2EigiAQSpAABrvz70EeI366.png看到根目录自动生成一个APP文件夹wKg0C2EihaAQSuRAACFeINEQCk020.png

wKg0C2EiiGABwStAABLLLNHhUw158.png更改Admin中的配置文件wKg0C2EiliAJk4fAAF4oHJR6aE381.png

1.2框架学习

路由方式:

www.tp3.com/index.php/home/index/index

  http://www.tp3.com/index.php?m=home&?c=Index&?a=index

1.3ThinkPHP模板的显示调用

模板的保存位置在APP->Home-> View,我们创建的IndexController.class.php中的函数,必须对应一个View->Index文件夹(名字一定要正规,要不然在Linux系统中无法显示)。修改IndexController.class.php,确定函数为Index

wKg0C2EioKAFSvvAABq7VN38g717.png wKg0C2EioeAX2QCAABwoCFmKQ4772.png

如果View->Index文件夹下没有index.html的话,那我们访问网页就会出现这种效果wKg0C2EipSAXSXtAACmHzEs4nI262.png

制作HTML界面,将前端头部代码放到common中。并且在IndexController中修改好调用函数wKg0C2EirOACSEnAAFG2ua1sbg195.png

wKg0C2EirqACtGiAAFJnqSljXw834.png

wKg0C2EisKAZNghAAD79ALHo08113.png

PUBLIC_ 常量 代表/Public目录名,一般在ThinkPHP中出现是我们存储js,img的文件夹

1.4ThinkPHP 数据库部署

1.4.1 开启调试

//开启调试模式(这个在后面必用,那我们就事先准备好)

// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);

1.4.2 操作数据库

准备一个数据库,写入部分数据备用

wKg0C2EizSAIXcNAAC0T5UzBAI837.png1.4.3将数据库的配置代码复制到APP->Conf->Config.php中wKg0C2Ei0WAGBXiAADUzjIATkc929.png

1.5 前端页面加强

分页展示界面(index.html)
1.5.1

让前端页面做一个分页展示,在thinkphp手册里有相关的代码wKg0C2Ei1qANe2oAADRoRVMzZg652.png

//这里M表示连接数据库Comment表 thinkPHP自带函数
        $comment = M('Comment');//这个分页数来自config.php
        //查询满足要求的总记录数
        $count = $comment->count(); 
        //实例化分页类,传入总记录数和没分页显示的记录数($limit)
        $Page = new \Think\Page($count,$limit);
           //分页显示输出
        $show = $Page->show();
        //进行分页数据查询 注意limit方法的参数要使用page类的属性
        $list = $comment->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();

        $this->assign('data',$list);// 赋值数据集
        $this->assign('page',$show);// 赋值分页输出
        $this->display(); // 输出模板

1.5.2前端 index.html页面循环wKg0C2Ei4CACZyVAADLLdNUYI8754.png

1.5.3 更改页面脚wKg0C2Ei4uAAVsxAAD7QVlOC1Y360.png

1.5.4 发布留言界面 pub.html
获取系统IP 在HOME文件夹->Common->创建functions.php 存储get_client_ip代码
<?php
/**
 * Created by leso
 */

function get_client_ip($type = 0) {
    $type       =  $type ? 1 : 0;
    static $ip  =   NULL;
    if ($ip !== NULL) return $ip[$type];
    if($_SERVER['HTTP_X_REAL_IP']){//nginx 代理模式下,获取客户端真实IP
        $ip=$_SERVER['HTTP_X_REAL_IP'];
    }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {//客户端的ip
        $ip     =   $_SERVER['HTTP_CLIENT_IP'];
    }elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {//浏览当前页面的用户计算机的网关
        $arr    =   explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
        $pos    =   array_search('unknown',$arr);
        if(false !== $pos) unset($arr[$pos]);
        $ip     =   trim($arr[0]);
    }elseif (isset($_SERVER['REMOTE_ADDR'])) {
        $ip     =   $_SERVER['REMOTE_ADDR'];//浏览当前页面的用户计算机的ip地址
    }else{
        $ip=$_SERVER['REMOTE_ADDR'];
    }
    // IP地址合法验证
    $long = sprintf("%u",ip2long($ip));
    $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);
    return $ip[$type];
}

wKg0C2Ei7aAJxNeAADIAISs4rc730.png

修改IndexController.class.php在编辑留言处->edit()函数和修改前端界面-> action=“{:U('Home/Index/pub')}”wKg0C2EjPmANmGnAACTfCymBZA833.png

二、总结与展示

ThinkPHP是一款很友好的开源框架,对初学者来说是很方便的。ThinkPHP的控制也很简单,需要调试好控制器和config.php即可 ·。

wKg0C2EjQeAVgaAAFNbU3mndM122.png

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐