ThinkPHP を始める例

WBOY
リリース: 2016-06-13 12:23:59
オリジナル
1796 人が閲覧しました

ThinkPHP の入門例

今では国産の PHP フレームワーク ThinkPHP が根強い人気があるので、今回は ThinkPHP を使って簡単に操作してみます。

私がやったのは単純なログイン操作です。つまり、ログイン機能を実装しますが、他のページに不正にアクセスすることはできません。そうでない場合は、ログインインターフェイスにジャンプします。

1: 公式サイトに移動します。最新の ThinkPHP をダウンロードするための Web サイト、私がダウンロードしたのは 3.2.3 のフルバージョンです

2: プロジェクトの作成には、PHP 統合環境である wampserver を使用します。もちろん、phpstudy や xampp を使用することもできます。ここでは詳細は説明しません。

www ディレクトリに think-demo フォルダーを作成します。これはプロジェクト名です。ここでそれを選択して、解凍します。ダウンロードした thinkphp 圧縮パッケージを think-demo ディレクトリに移動します

これらのディレクトリは解凍後に表示されます。このとき、アプリケーションにはインデックスが 1 つだけあり、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&#160;protected]>// +----------------------------------------------------------------------// 应用入口文件// 检测PHP环境if(version_compare(PHP_VERSION,'5.3.0','<&#39;))  die(&#39;require PHP > 5.3.0 !');// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为falsedefine('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&#160;protected]>// +----------------------------------------------------------------------// 后台入口文件// 检测PHP环境if(version_compare(PHP_VERSION,'5.3.0','<&#39;))  die(&#39;require PHP > 5.3.0 !');// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为falsedefine('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 にそれぞれアクセスします


次に、アプリケーション ディレクトリを確認しました。そして、Admin ディレクトリと Home ディレクトリ、Common ディレクトリと Runtime ディレクトリがあることがわかりました。Admin (バックエンド システム ディレクトリ) と Home (フロントエンド システム ディレクトリ) は主に以前のindex.php であり、admin .php は自動的に生成された


データベースを作成するには、考えてテーブルを作成します admin:

データを挿入 1 、admin、admin (パスワードは暗号化されています) md5 を使用)


次に、ここでバックグラウンド ログイン モジュールを完了するだけです。そのため、ホーム ディレクトリを使用する必要はなく、Admin ディレクトリのみが必要です。Controller ディレクトリに新しいディレクトリを作成します。 CommonController.class.php と LoginController.php の 2 つのファイル

のコードはそれぞれ次のとおりです:

<?php/* * 公共控制器 */ namespace Admin\Controller; use Think\Controller; class CommonController extends Controller{	 /*判断用户是否登录*/	 public function _initialize(){		 if(!isset($_SESSION[&#39;uid&#39;]) || !isset($_SESSION[&#39;username&#39;])){			 redirect(U(&#39;Login/index&#39;));		 }	 } } ?>
ログイン後にコピー
で構成を完了します。 Admin ディレクトリでの Conf 構成:
<?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__);	 } }
ログイン後にコピー

<?phpreturn array(     /*数据库配置*/	 &#39;DB_TYPE&#39; => '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、画像などのリソースを保存し、ログイン ディレクトリに新しい Index.html を作成します。これがログイン ページです。私が完成したデモはそれに応じて処理されています

ログイン ページ コード:

次に、アドレス http://localhost/ を入力します。 think-demo/index.php/Admin/login にアクセスします。正しいアカウントを入力すると、アクセスは正しく行われます。そうでない場合は、ログイン ページに戻ります

<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(&#39;login&#39;)}" 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>
ログイン後にコピー


この時点で、小さなデモが完了しました。プロセス全体は非常に長くなりますが、この小さなデモをリソース リストにアップロードしました。



著作権表示: この記事はブロガーによって書かれています。オリジナルの記事はブロガーの許可なく複製することはできません。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート