ThinkPHP3.0主入口配置,注册、登录案例

贴一个我的项目目录,对刚接触ThinkPHP3.0的同学很有帮助的

 

此文件时入口文件index.PHP

 

[php]  view plain  copy
 print ?
  1. <?php  
  2.                   
  3. //定义一下ThinkPHP框架存放的路径  
  4. define('THINK_PATH','./ThinkPHP/');  
  5.   
  6. //定义当前的项目的名称,此处的项目可理解为模块home理解为前台部分  
  7. define('APP_NAME','protal');  
  8.    
  9. //定义项目的路径              
  10. define('APP_PATH','./protal/');  
  11.   
  12. define('APP_DEBUG', true);  
  13.   
  14. require THINK_PATH.'ThinkPHP.php';  


conf/config.php 

[php]  view plain  copy
 print ?
  1. <?php  
  2. //包含定义配置数据库连接的配置文件  
  3. $dbConf=include './config.inc.php';  
  4.   
  5. //定义项目本身常规配置  
  6. $Conf=array(  
  7.     //'配置项'=>'配置值'  
  8.   
  9.     'URL_MODEL'=>2,//2表示是URL重写模式  
  10.           
  11. );  
  12. return array_merge($dbConf,$Conf);  
  13.   
  14. ?>  


 

 

 

 

与入口文件同级的有一个配置文件config.inc.php

 

 

[php]  view plain  copy
 print ?
  1. <?php  
  2. return array(  
  3.     //'配置项'=>'配置值'  
  4.         'DB_TYPE'=>'mysql',  
  5.           
  6.         'DB_HOST'=>'localhost',  
  7.         //数据库名  
  8.         'DB_NAME'=>'think',  
  9.         //数据库用户  
  10.         'DB_USER'=>'root',  
  11.         //数据库密码  
  12.         'DB_PWD'=>'',  
  13.         //数据库端口  
  14.         'DB_PORT'=>'3306',  
  15.         //表前缀  
  16.         'DB_PREFIX'=>'t_',  
  17.           
  18. )     
  19. ?>  


控制器IndexAction.class.php

 

[php]  view plain  copy
 print ?
  1. <?php  
  2. // 本类由系统自动生成,仅供测试用途  
  3. class IndexAction extends Action {  
  4.     public function index(){  
  5.         header("Content-Type:text/html; charset=utf-8");  
  6.         $this->display("reg");  
  7.     }  
  8.   
  9.     function add(){  
  10.       
  11.           
  12.           
  13.         if(md5($_POST['verify'])!=$_SESSION['verify']){  
  14.               
  15.             $this->error("验证码错误");  
  16.         }   
  17.           
  18.           
  19.         //实例化自定义模型  M('User')实例化基础模型  
  20.         $user=D("User");  
  21.               
  22.             if($user->create()){  
  23.                   
  24.                   
  25.                     //执行插入操作,执行成功后,返回新插入的数据库的ID  
  26.                      if($user->add()){  
  27.                           
  28.                         $this->success("注册成功");  
  29.                     }else{  
  30.                           
  31.                         $this->error("注册失败");      
  32.                     }   
  33.                   
  34.               
  35.               
  36.             }else{  
  37.                 //把错误信息提示给用户看  
  38.   
  39.                   
  40.                   
  41.                 $this->error($user->getError());  
  42.   
  43.               
  44.             }  
  45.           
  46.     }  
  47.       
  48.       
  49.     //生成图片验证码  
  50.     function verify(){  
  51.     /** 
  52.      * 在thinkPHP中如何实现验证码 
  53.      *  
  54.      * ThinkPHP已经为我们提供了图像处理的类库ThinkPHP\Extend\... 
  55.      *  
  56.      * 如何导入类库? 
  57.      * 导入类库用"import(文件路径)来导入,但是注意文件的路径中的\要替换成 . 号" 
  58.      * 1)导入系统的类库  import(从library开始算起) import('ORG.Util.Image')注意大小写 
  59.      * 2)导入项目类库 import("@.ORG.Image") 我们需要在我恩的项目的Lib目录中存放    
  60.      */   
  61.         //导入图形处理类库  
  62.         import("ORG.Util.Image");  
  63.           
  64.               
  65.         //import("@.ORG.Image");  
  66.           
  67.           
  68.         //生成图形验证码  
  69.         /* 
  70.         length:验证码的长度,默认为4位数 
  71.  
  72.         mode:验证字符串的类型,默认为数字,其他支持类型有0 字母 1 数字 2 大写字母 3 小写字母 4中文 5混合(去掉了容易混淆的字符oOLl和数字01) 
  73.  
  74.         type:验证码的图片类型,默认为png  
  75.  
  76.         width:验证码的宽度,默认会自动根据验证码长度自动计算 
  77.  
  78.         height:验证码的高度,默认为22 
  79.  
  80.         verifyName:验证码的SESSION记录名称,默认为verify 
  81.  
  82.            
  83.          */  
  84.         //实现英文验证码  
  85.         image::buildImageVerify(4,1,'gif',60,22,'verify');  
  86.           
  87.           
  88.         //实现中文验证码  
  89.         //image::GBVerify();  
  90.     }  
  91.   
  92.       
  93.       
  94.   
  95. }  


 

 模型UserModel.class.php

 

[php]  view plain  copy
 print ?
  1. <?php  
  2. class UserModel extends Model{  
  3.   
  4.     //自动验证  
  5.     protected $_validate=array(  
  6.             //每个字段的详细验证内容  
  7.             array("username","require","用户名不能为空"),  
  8.             array("username","checkLength","用户名长度不符合要求",0,'callback'),  
  9.             array("password","require","密码不能为空"),  
  10.             array("password","checkLength","密码长度的要求是5~15位之间",0,'callback'),  
  11.             array("password","repassword","两次密码输入不一致",0,'confirm'),  
  12.             array("qq","require","qq必须填写"),  
  13.               
  14.                   
  15.             //array("cdate","require","时间不能为空",callback),  
  16.                   
  17.             );  
  18.       
  19.       
  20.     //自动填充  
  21.     protected $_auto=array(  
  22.               
  23.             array("password","md5",3,'function'),  
  24.             array("cdate","shijian",3,'callback'),  
  25.             array("dizhi","getIp",3,'callback'),  
  26.                   
  27.             );  
  28.       
  29.       
  30.       
  31.       
  32.       
  33.       
  34.       
  35.       
  36.         //自定义验证方法,来验证用户名的长度是否合法  
  37.         //$date形参  可以写成任意如 $AA  $bb  
  38.         function checkLength($data){  
  39.             //$data里存放的就是要验证的用户输入的字符串  
  40.             if(strlen($data)<5||strlen($data)>15){  
  41.                   
  42.                 return false;  
  43.             }else{  
  44.                   
  45.                 return true;  
  46.             }  
  47.               
  48.               
  49.         }  
  50.       
  51.   
  52.           
  53.         //返回访问者的IP地址  
  54.         function getIp(){  
  55.               
  56.             return $_SERVER['REMOTE_ADDR'];  
  57.         }  
  58.       
  59.         function shijian(){  
  60.                   
  61.             return date("Y-m-d H:i:s");  
  62.         }  
  63.       
  64.       
  65.       
  66. }  


 

 模板reg.html

 

[html]  view plain  copy
 print ?
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5. <title>注册</title>  
  6. </head>  
  7. <body>  
  8.     <form action="__URL__/add"  method="post" >  
  9.       <table width="407" height="424" align="center">  
  10.         <th height="95"><H2>请认真填写以下注册信息</H2></th>  
  11.       <tr>  
  12.       <td><table height="273" align="center">  
  13.         <tr>  
  14.           <td width="74" align="right">用户名:</td>  
  15.           <td width="304" align="left"><input type="text" name="username"></td>  
  16.           </tr>  
  17.         <tr>  
  18.           <td height="70" align="right">密码:</td>  
  19.           <td align="left"><input type="password" name="password"></td>  
  20.           </tr>  
  21.         <tr>  
  22.           <td align="right">确认密码:</td>  
  23.           <td align="left"><input type="password" name="repassword"></td>  
  24.           </tr>  
  25.         <tr>  
  26.           <td align="right">QQ:</td>  
  27.           <td align="left"><input type="text" name="qq"></td>  
  28.           </tr>  
  29.         <tr>  
  30.           <td align="right">验证码:</td>  
  31.           <td align="left"><input type="text" name="verify" >  
  32.             <img id="verify" alt="验证码" onClick="show()" src="__URL__/verify"><a href="javascript:show()">看不清楚</a></td>  
  33.           </tr>  
  34.         <tr>  
  35.           <td colspan="2" align="center"><input type="submit" value="提交"></td>  
  36.           </tr>  
  37.         </table></td>  
  38.       </tr>  
  39.       </table>  
  40. </form>  
  41. </body>  
  42. </html>  
  43.   
  44. <script>  
  45.   
  46.       
  47.     function show(){  
  48.         document.getElementById("verify").src="__URL__/verify/random"+Math.random();  
  49.           
  50.     }  
  51.       
  52.       
  53. </script>  


 

 

如果还有不明白的地方,可以给我留言,我会详细解答您留下的问题,谢谢关注

 

 

 

 

 

目录结构如下

 

TP

--------ThinkPHP  文件夹

--------protal.php  这个文件叫protal.php

 

当运行protal.php时,会出现ThinkPHP的欢迎页面,证明已经配置成功,同时目录结果会发生变化

此时的目录为

 

TP

--------ThinkPHP  文件夹

--------protal.php  入口文件(上边那个文件)

--------protal 文件夹

 

 

生成的项目目录结构和系统目录类似,包括:

Common

项目公共文件目录,一般放置项目的公共函数

Conf

项目配置目录,项目所有的配置文件都放在这里

Lang

项目语言包目录(可选 如果不需要多语言支持 可删除)

Lib

项目类库目录,通常包括Action和Model子目录

Tpl

项目模板目录,支持模板主题

Runtime

项目运行时目录,包括Cache(模板缓存)、Temp(数据缓存)、Data(数据目录)和Logs(日志文件)子目录,如果存在分组的话,则首先是分组目录。

 

 

 

MySQLSELECT FROM_UNIXTIME(875996580);

        -> '1997-10-04 22:23:00'

 

 

mysql> SELECT UNIXTIME_TIMESTAMP('1997-10-04 22:23:00');

        -> '875996580'

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值