如今,國產(chǎn)php框架ThinkPHP還是比較火爆的,所有現(xiàn)在我們就簡單的使用ThinkPHP來操作一下。
我做的是一下簡單的登錄操作,意思就是:實現(xiàn)登錄功能,但是不能非法訪問其它頁面,否則跳到登錄界面
一:到官方下載最新的ThinkPHP,我下載的是3.2.3完整版
二 :創(chuàng)建項目,我使用的是wampserver這款php的集成環(huán)境,當然也可以使用phpstudy或者xampp,這里就不詳細說明了
在www目錄下創(chuàng)建think-demo文件夾,也就是項目名,這里可以隨便取,然后將下載的thinkphp壓縮包解壓到think-demo目錄下
解壓之后出現(xiàn)這些目錄,然后我們配置index.php,此時Application中只有一個index.html,我們通過配置index.php,然后瀏覽器訪問生成項目的目錄
<?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c) 2006-2014 http://thinkVeVb.com All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: liu21st <[email protected]>// +----------------------------------------------------------------------// 應用入口文件// 檢測PHP環(huán)境if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');// 開啟調(diào)試模式 建議開發(fā)階段開啟 部署階段注釋或者設(shè)為falsedefine('APP_DEBUG',True);// 定義應用目錄define('APP_PATH','./Application/');/*緩存目錄設(shè)置*/define("RUNTIME_PATH",'./Runtime/');// 引入ThinkPHP入口文件require './ThinkPHP/ThinkPHP.php';
此時我們知道,一個web項目有前臺系統(tǒng)和后臺系統(tǒng)之分,所以,我們還要生成后臺系統(tǒng)的目錄,和index.php一樣,我們在同級目錄下新建一個admin.php,代碼為
<?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c) 2006-2014 http://thinkVeVb.com All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: liu21st <[email protected]>// +----------------------------------------------------------------------// 后臺入口文件// 檢測PHP環(huán)境if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');// 開啟調(diào)試模式 建議開發(fā)階段開啟 部署階段注釋或者設(shè)為falsedefine('APP_DEBUG',True);define('BIND_MODULE','Admin');// 定義后臺Admin目錄define('APP_PATH','./Application/');/*緩存目錄設(shè)置*/define('RUNTIME_PATH','./Runtime/');// 引入ThinkPHP入口文件require './ThinkPHP/ThinkPHP.php';
然后我們觀察Application目錄,發(fā)現(xiàn)出現(xiàn)了Admin和Home目錄,還有Common和Runtime目錄,Admin(后臺系統(tǒng)目錄)和Home(前臺系統(tǒng)目錄)主要就是之前的index.php和admin.php訪問自動生成的
創(chuàng)建數(shù)據(jù)庫think,創(chuàng)建表admin:
插入數(shù)據(jù)1,admin,admin(密碼使用md5加密)
然后我們這里只完成后臺的登錄模塊,所以Home目錄不需要使用,只需Admin目錄,我們在Admin下的Controller目錄下新建CommonController.class.php和LoginController.php這兩個文件
代碼分別是:
<?php/* * 公共控制器 */ namespace AdminController; use ThinkController; class CommonController extends Controller{ /*判斷用戶是否登錄*/ public function _initialize(){ if(!isset($_SESSION['uid']) || !isset($_SESSION['username'])){ redirect(U('Login/index')); } } } ?>
<?php/* * 后臺登錄控制器 */ namespace AdminController; use Thinkcontroller; 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的配置:
<?phpreturn array( /*數(shù)據(jù)庫配置*/ 'DB_TYPE' => 'mysql', //數(shù)據(jù)庫類型 'DB_HOST' => '127.0.0.1', //數(shù)據(jù)庫地址 'DB_NAME' => 'wldt', //數(shù)據(jù)庫名稱 'DB_USER' => 'root', //用戶名 'DB_PWD' => '', //密碼 //'DB_PREFIX' => 'dt_', //數(shù)據(jù)庫表前綴 /*模板配置*/ '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中路徑做了相應的處理
登錄頁代碼:
<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"> <h3>登錄(Login)</h3> <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">+</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進行訪問,輸入正確賬戶則訪問正確,否則返回登錄頁
到此,一個小demo就完成了,整個流程比較羅嗦,實現(xiàn)的功能也比較簡單,這個小demo我已經(jīng)上傳到資源列表里了。
PHP編程鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。
|
新聞熱點
疑難解答
圖片精選