Code Security Guide -Thinkphp3.2开发

  • Comments Off on Code Security Guide -Thinkphp3.2开发
  • 20 views
  • A+

一、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框架学习

路由方式:

```url
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 开启调试

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

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

1.4.2 操作数据库

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

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

wKg0C2Ei0WAGBXiAADUzjIATkc929.png

1.5 前端页面加强

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

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

wKg0C2Ei1qANe2oAADRoRVMzZg652.png

```php
//这里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
<?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