ThinkPHP使用入门实例

如今,国产php框架ThinkPHP还是比较火爆的,所有现在我们就简单的使用ThinkPHP来操作一下。

我做的是一下简单的登录操作,意思就是:实现登录功能,但是不能非法访问其它页面,否则跳到登录界面

一:到官方下载最新的ThinkPHP,我下载的是3.2.3完整版

二 :创建项目,我使用的是wampserver这款php的集成环境,当然也可以使用phpstudy或者xampp,这里就不详细说明了

在www目录下创建think-demo文件夹,也就是项目名,这里可以随便取,然后将下载的thinkphp压缩包解压到think-demo目录下

ThinkPHP使用入门实例_第1张图片

ThinkPHP使用入门实例_第2张图片

ThinkPHP使用入门实例_第3张图片

解压之后出现这些目录,然后我们配置index.php,此时Application中只有一个index.html,我们通过配置index.php,然后浏览器访问生成项目的目录

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <[email protected]>
// +----------------------------------------------------------------------

// 应用入口文件

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

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

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

/*缓存目录设置*/

define("RUNTIME_PATH",'./Runtime/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';


此时我们知道,一个web项目有前台系统和后台系统之分,所以,我们还要生成后台系统的目录,和index.php一样,我们在同级目录下新建一个admin.php,代码为

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <[email protected]>
// +----------------------------------------------------------------------

// 后台入口文件

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

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

// 定义后台Admin目录
define('APP_PATH','./Application/');

/*缓存目录设置*/
define('RUNTIME_PATH','./Runtime/');

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

好了,我们启动wamp,打开浏览器,分别访问index.php和admin.php

ThinkPHP使用入门实例_第4张图片

然后我们观察Application目录,发现出现了Admin和Home目录,还有Common和Runtime目录,Admin(后台系统目录)和Home(前台系统目录)主要就是之前的index.php和admin.php访问自动生成的

ThinkPHP使用入门实例_第5张图片

创建数据库think,创建表admin:

ThinkPHP使用入门实例_第6张图片

插入数据1,admin,admin(密码使用md5加密)

然后我们这里只完成后台的登录模块,所以Home目录不需要使用,只需Admin目录,我们在Admin下的Controller目录下新建CommonController.class.php和LoginController.php这两个文件

代码分别是:

<?php
/*
 * 公共控制器
 */
 namespace Admin\Controller;
 use Think\Controller;
 class CommonController extends Controller{
	 /*判断用户是否登录*/
	 public function _initialize(){
		 if(!isset($_SESSION['uid']) || !isset($_SESSION['username'])){
			 redirect(U('Login/index'));
		 }
	 }
 }
 ?>

<?php
/*
 * 后台登录控制器
 */
 namespace Admin\Controller;
 use Think\controller;
 class LoginController extends Controller{
	 /*登录页视图*/
	 public function index(){
		 $this->display();
	 }

	 /*登录处理*/
	 public function login(){
		 if(!IS_POST) $this->error('访问页面不存在');


		 $name = I('username');
		 $pwd = md5(I('password'));
		 $db = M('admin');
		 $admin = $db->where(array('username'=>$name))->find();

		 if(!$admin || $admin['password'] != $pwd){
			 $this->error('账号或密码错误');
		 }

		 session('uid',$user['id']);
		 session('username',$user['username']);

		 $this->success('登录成功!', __APP__);
	 }
 }
我们完成Admin目录下Conf中config的配置:

<?php
return array(
     /*数据库配置*/
	 'DB_TYPE' => 'mysql',   //数据库类型
	 'DB_HOST' => '127.0.0.1',  //数据库地址
	 'DB_NAME' => 'wldt',    //数据库名称
	 'DB_USER' => 'root',   //用户名
	 'DB_PWD'  => '',      //密码
	 //'DB_PREFIX' => 'dt_',  //数据库表前缀
	/*模板配置*/
	'TMPL_PARSE_STRING' => array(
	    '__PUBLIC__' => '/think-demo/Application/Admin/View/Public',
	),

	/*SESSION和COOKIE配置*/
	'SESSION_PREFIX'  => 'dt_admin'


);


我们在Admin下的View目录下新建目录Login和Public,Login存放登录视图页面,Public存放使用的css,js和图片等资源,然后在Login目录下新建index.html,这就是登录页,我完成的这个demo中使用的js里initjs中路径做了相应的处理

ThinkPHP使用入门实例_第7张图片

登录页代码:

<html>
<!DOCTYPE html>
<html lang="en" class="no-js">

    <head>

        <meta charset="utf-8">
        <title>登录(Login)</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="description" content="">
        <meta name="author" content="">

        <!-- CSS -->
        <link rel="stylesheet" href="__PUBLIC__/assets/css/reset.css">
        <link rel="stylesheet" href="__PUBLIC__/assets/css/supersized.css">
        <link rel="stylesheet" href="__PUBLIC__/assets/css/style.css">

        <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
        <!--[if lt IE 9]>
            <script src="__PUBLIC__/assets/js/html5.js"></script>
        <![endif]-->

    </head>

    <body>

        <div class="page-container">
            <h1>登录(Login)</h1>
            <form action="{:U('login')}" method="post">
                <input type="text" name="username" class="username" placeholder="请输入您的用户名!">
                <input type="password" name="password" class="password" placeholder="请输入您的用户密码!">
                <button type="submit" class="submit_button">登录</button>
                <div class="error"><span>+</span></div>
            </form>
        </div>
		
        <!-- Javascript -->
        <script src="__PUBLIC__/assets/js/jquery-1.8.2.min.js" ></script>
        <script src="__PUBLIC__/assets/js/supersized.3.2.7.min.js" ></script>
        <script src="__PUBLIC__/assets/js/supersized-init.js" ></script>
        <script src="__PUBLIC__/assets/js/scripts.js" ></script>

    </body>
</html>

然后我们输入地址http://localhost/think-demo/index.php/Admin/login进行访问,输入正确账户则访问正确,否则返回登录页

ThinkPHP使用入门实例_第8张图片

到此,一个小demo就完成了,整个流程比较罗嗦,实现的功能也比较简单,这个小demo我已经上传到资源列表里了,点击这里下载


你可能感兴趣的:(thinkphp)