属于你自己的Qzone (2)---- 导入使用,测试登录

不扯那么多伤感,直接入题了。

1.下载Thinkphp

首先我们参考的书籍是采用Hush Framework作为架构,我在这里换成ThinkPhp,都是MVC模式,使用架构不一样,但是开发模式是一样的。
访问链接http://www.thinkphp.cn/down/610.html下载我们需要的THinkphp框架。解压导入新建项目中。

属于你自己的Qzone (2)---- 导入使用,测试登录_第1张图片
项目结构 1-1

可以看到这里我们起了一个Weibo的名字,目录在C:\xampp\htdocs\dashboard\Weibo,这是xmapp访问目录目录,这样建的目的是直接可以在本机的localhost刷新访问,不必使用PhpStorm内置运行来控制,

那么我们看一下目录结构,从上到下,Public是公共文件,比如一些媒体资源,公用代码等,THinkphp是核心库,不必要动,那么weibo就是我们的项目了,weibo下的目录也是thinkphp默认带的,剩下的文件夹之外的文件 ,2是一个API.md,主要是写来记录API的可以给移动端调用(要养成写清晰API接口的习惯),3.是THinkphp入口文件,学过THinkphp的都明白,4是项目的README.md,主要是一个项目介绍,5是SQL.md主要是数据库的一个文档

好,这个目录结构是THinkphp的默认结构,只不过是我添加了几个md文件,用于记录一些东西,防止遗忘。

2.配置入口 index.php(1-1图上的文件3)

第一步,当然是配置入口,当然如果不修改,默认是不用配置的,这里主要是应用入口换成了Weibo,修改一下


// +----------------------------------------------------------------------

// 应用入口文件

// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<'))  die('require PHP > 5.3.0 !');

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

// 定义应用目录
define('APP_PATH','./Weibo/');

// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';

// 亲^_^ 后面不需要任何代码了 就是如此简单

3.配置数据库

我们使用phpmyadmin建立相应的数据库
我们建立了图1-2数据库及表,当然你不用着急看到他的字段内容,我们下面测试登录,只用到weibo_admin测试表,如图1-3


属于你自己的Qzone (2)---- 导入使用,测试登录_第2张图片
数据库 1-2
数据库 1-3

共有四个字段,id(主键),username,password uptime

那么我们在Home/Conf/config.php配置数据库信息,如1-4所示,暂时需要这么多配置


属于你自己的Qzone (2)---- 导入使用,测试登录_第3张图片
配置 1-4

前缀是weibo_,这就要求你建立的表都要加上weibo_前缀,否则就不要写这个配置,账号密码根据你自己的mysql来配置,页面调试工具打开用于调试

4.测试

此时我们的THinkphp基本上配置完毕,那么我们在浏览器测试一下输入 http://localhost/dashboard/Weibo/index.php/Home/ 我们可以看到THinkphp的提示信息

属于你自己的Qzone (2)---- 导入使用,测试登录_第4张图片
信息 1-5

那么就算是成功了。

5.新建控制器

那么我们新建控制器名为LoginController.class.php

Login(I('post.name'), I('post.pass')));
    }
}

可以看到这里添加了一个登录方法,建议大家写方法接口的时候,把信息注释起来,然后复制一份到API文档,这样维护起来比较方便。

登录方法就一行,这样写其实可读性不高,不过看起来还算清晰

  • e_json [这个方法是放在\Weibo\Common\Common\function.php]里的一个公共方法 ,简单封装了一下json_encode(),其实是为了好看……不知道我为什么不喜欢json_encode这个名字(程序猿的强迫症)
/*
 * 方法:对客户端返回json串
 * */
function e_json($res){
    echo json_encode($res);
    exit();
}
  • M('\Home\Model\LoginModel:admin')
    这里需要新建一个LoginModel模型,它掌控admin表,里面有一个Login方法,一会在下面贴,这就是属于。M层管理数据了

  • I('post.name'), I('post.pass')
    使用I方法接受post数据,这个是thinkphp内置方法,不必多说。

6.新建模型

LoginModel.class.php放在模型文件夹

class LoginModel extends Model{
    /*登录*/
    public function Login($name, $pass) {
        //默认json数据
        $res = normal_json();
        //查询用户
        $map['username'] = $name;
        //找到的信息
        $dlist = $this ->where( $map) ->find();
        //如果找到,进行md5比较
        if( $dlist){
         //   if( $dlist['pass'] == md5($pass +'md5'+$pass)) {
            if( $dlist['password'] == $pass) {
                $r['jcode'] = 200;
                $r['jmsg'] = '登录验证通过';
            }else {
                //密码错误
                $r['jcode'] = 400;
                $r['jmsg'] = '用户名或密码输入错误';
            }
        }else {
            //未注册
            $r['jcode'] = 404;
            $r['jmsg'] = '用户名未注册';
        }
        //返回$r
        return $r;
    }
}

我们已经在模型里写出了Login方法,

  • normal_json【这是在\Weibo\Common\Common\function.php里的公共方法】,主要是生成一个默认的数组,用于默认情况下的json发送(说白了就是懒得写代码,才抽取方法)
/*
 * 方法:返回默认数组
 * */
function normal_json(){
    //默认数据
    $res = array('jcode'=>0, 'jdata'=>NULL, 'jmsg'=>'NULL','jmore'=>NULL);
    return $res;
}
  • $dlist = $this ->where( $map) ->find(); 这就是查询数据库啦,thinkphp的数据库操作。在数据库找到信息的话,就说明这个用户注册了,否则就没有,那么注册了之后再判断密码(这里写个简单的不加密的测试,正式开发的话就要做加密了)

  • $r['jcode'] = 200; $r['jmsg'] = '登录验证通过';
    这是属于封装json的准备工作,准备数组,返回后在控制器封装,那么这里我们给了4个字段,可以在normal_json看到jcode,jdata,jmsg,jmore,主要是状态码,数据,状态信息,其他,通过这4个字段给Android发信息

7.文档

那么代码写完了,看看我们文档怎么写的吧!

属于你自己的Qzone (2)---- 导入使用,测试登录_第5张图片
文档 1-6

文档是必须的,即使我一个人开发,也要有份清晰的接口文档,当然我第一次做这个东西,我不知道人家正式的文档是怎么写的,我写的满足我自己的使用就好,至少我自己能看懂吧,(偷笑),那么最后一步,测试

8.测试

我们在weibo_admin表添加一条账号admin,密码admin数据

在前面我们说过,我们这个项目就不写测试后台了,我们直接用一个Chrome插件postman测试,这个插件还是很强大的,不过毕竟Chrome下载需要科学上网咯(最近查的好严的……),那么我们下载安装等待使用。

现在我们的浏览器测试一下


属于你自己的Qzone (2)---- 导入使用,测试登录_第6张图片
浏览器 1-7

可以看到json数据,但是由于我们没有post数据,那么没有返回正确的结果,这就要用到postman了。

属于你自己的Qzone (2)---- 导入使用,测试登录_第7张图片
post 1-8

操作步骤就是图中顺序,注意form字段需要和后端匹配,name和pass,可以看到我们在下面的返回数据里有200的状态码,说明我们已经成功了,那么我们可以写一个错误的用户名密码,看看效果

属于你自己的Qzone (2)---- 导入使用,测试登录_第8张图片
Post 1-9

找不到用户是404错误,嗯对的。

属于你自己的Qzone (2)---- 导入使用,测试登录_第9张图片
Post 1-10

那么密码错误是400,没问题。

说起来postman还是挺简单的测试工具,满足了日常测试使用,那么本次的测试接口我们就写完了,因为我们的真正的用户表不是这个weibo_admin所以,这个登录仅仅是一个测试,在接下来的文章中,可能就来真家伙了!

9 .Continue!

继续出发!

你可能感兴趣的:(属于你自己的Qzone (2)---- 导入使用,测试登录)