黄永成-thinkphp讲解-个人博客讲解26集
如果是要导入 前后台分组都公用的 第三方类库, 就将类库(*.class.php文件) 放在 App下的Class文件夹中.
导入方法是:
import('Class.Image', APP_PATH);
---------------------------- ==
在项目的配置文件目录Conf下有一个配置文件:config.php,
可以把所有的配置项都放在这个文件里面,
为了分门别类, 便于管理配置文件, 也可以使用多个配置文件, 但是也可以把某些特别的配置项/配置内容放在另外的单独的文件中, 如: another.config.php
但是要在 "主"配置文件中config.php中, 设置: 'LOAD_EXT_CONFIG'=>another.config.php
由此, 也可以看出, 并不是所有的配置项, 都在 TP/Conf/convention.php中查得到.
THINKPHP框架, 提供了完整的系统常量 "系": "path系"和"name系"
path系: APP_PATH, GROUP_PATH, MODULE_PATH, CORE_PATH, LIB_PATH,
下面的name系: 同上面的一系列....
------------------------------------- ==
public function captcha(){
// load my class 加载自定义的第三方类
//echo APP_PATH.'Modules/'.GROUP_NAME; // 预先看看自定义类库的路径
//die;
import('MyImage.Image',APP_PATH.'Modules/'.GROUP_NAME); // 这时候加载的是: App/Modules/Admin/MyImage/ 目录下的Image类库
Image::buildImageVerify();
}
经检验, 能够正确加载!
--------------------------------- ==
关于生成验证码的问题?
要注意, 首先, 这个验证码应该是一个图像! 所以在 对应的html文件中, 应该使用 img.... 标签, 然后, 考虑 src属性?
类库Image的方法buildImageVerfify 返回的是一个 字符串:
/**
* 生成图像验证码
* @static
* @access public
* @param string $length 位数
* @param string $mode 类型
* @param string $type 图像格式
* @param string $width 宽度
* @param string $height 高度
* @return string
*/
static function buildImageVerify($length=4, $mode=1, $type='png', $width=48, $height=22, $verifyName='verify') {
所以它正好可以作为 验证码的 img的 src属性值!
即: <img src={:U(GROUP_NAME.'/Login/captcha')} />
要注意的是, 在html中使用模板的格式是: 要在最外面的地方加大括号, 再在大括号里面使用 :U或 php变量$..., 而不是把冒号: 写在大括号的外面/前面了!否则就 不会被作为模板变量被替换, 而是作为原来的字符串而出错!
<form action="{:U('Admin/Login/verify')}" > // 这里不是 :{U(.....)}
<tr>
<td>captcha</td>
<td><input type="text" /><img src="{:U(GROUP_NAME.'/Login/captcha')}" /></td>
</tr>
// src="{:U(GROUP_NAME.'/Login/captcha') U方法得到的实际上是一个 包含图片的 captcha.html页面, 这个跟 src=xx.png 的效果是一样的!
黄永成-thinkphp讲解-个人博客讲解26集的更多相关文章
- 黄永成-thinkphp讲解-个人博客讲解25集
整个网站的根目录用blog你要跟别人说起,自己好识别的文件夹名字. 下面的项目名称 就不再重复的写了, 直接用App就好了. 网站访问: ...../index.php(入口文件)/Admin(模块名 ...
- Alpha阶段 - 博客链接合集
Alpha阶段 - 博客链接合集 项目Github地址 安卓端(Stardust):https://github.com/StardustProject/Stardust 服务器端(Gravel):h ...
- Beta阶段 - 博客链接合集
Beta阶段 - 博客链接合集 项目Github地址 安卓端(Stardust):https://github.com/StardustProject/Stardust 服务器端(Gravel):ht ...
- 【Alpha - 五成胜算队】博客列表
一. 团队Alpha冲刺博客 [Alpha 冲刺] 1/12 [Alpha 冲刺] 2/12 [Alpha 冲刺] 3/12 [Alpha 冲刺] 4/12 [Alpha 冲刺] 5/12 [Alph ...
- Alpha项目冲刺_博客链接合集
组员 学号 林泽宇(队长) 211606317 李涵 211606365 尹海川 211606388 郏敏杰 211606307 何永康 211606362 陈炳旭 211606353 苏宇翔 211 ...
- Cron定时任务应用到Thinkphp – 贤生博客
Cron定时任务应用到Thinkphp 安装crontab: yum install crontabs 关于cron的一些命令: /sbin/service crond start //启动服务 /s ...
- 马士兵老师hadoop讲解总结博客地址记录(啊啊啊啊啊,自己没有保存写好的博客...)
http://www.cnblogs.com/yucongblog/p/6650822.html
- 用flask开发个人博客(26)—— 利用config.py配置文件动态的创建不同的Flask对象
原文:https://blog.csdn.net/hyman_c/article/details/52877704 对配置进行封装的目的是根据不同的使用场景,给flask的app赋予不同的config ...
- 『编程题全队』Alpha 阶段冲刺博客Day4
1.每日站立式会议 1.会议照片 2.昨天已完成的工作统计 孙志威: 1.添加团队界面下的看板容器SlotWidget 2.实现SlotWidgets的动态布局管理 3.实现团队/个人界面之间的切换 ...
随机推荐
- [日常训练]常州集训day3
T1 Description 有$K$个石子,石子只能放在$N$条水平线与$M$条竖直线构成的网格的交点上. 求用$K$个石子最多能找到多少四边平行于坐标轴的长方形,它的四个角上都恰好放着一枚石子. ...
- Leetcode Find K Pairs with smallest sums
本题的特点在于两个list nums1和nums2都是已经排序好的.本题如果把所有的(i, j)组合都排序出来,再取其中最小的K个.其实靠后的很多组合根本用不到,所以效率较低,会导致算法超时.为了简便 ...
- 基于spring的文件上传--单文件上传
Spring配置文件 <bean id="multipartResolver" class="org.springframework.web.multipart.c ...
- Tomcat访问日志详细配置
在server.xml里的<host>标签下加上 <Valve className="org.apache.catalina.valves.AccessLogValve&q ...
- IRC(Internet Relay Chat Protocol) Protocal Learning && IRC Bot
catalogue . Abstract . INTRODUCTION . 通信协议Connection Registration Action . 通信协议Channel operations Ac ...
- 帮助理解委托、匿名委托、Lambda表达式还有事件
写了一个小程序,能够很好的认识到这三个的用法 namespace Lambda { /// <summary> /// 实现根据指定运算形式 输出结果 /// </summary&g ...
- 屠蛟之路_乘风破浪_FifthDay
乘风破浪 一艘大船 (我们写的几千行代码) 一片汪洋 (软工耗费的时间) 一群骚年 (一不小心就火了) 为救一位公主 (吃自助餐) 选择去跋山涉水,乘风破浪(解决bug,解决冲突) 毫不畏惧 (韧性) ...
- 卸载自己编译的程序(ubuntu14.04)
cd 源代码目录make clean./configuremake uninstall
- 【原】React中,map出来的元素添加事件无法使用
在使用react中,经常用到react的map函数,用法和jquery里中的map一样,但是,如果你在每个map出来的元素中添加,你会发觉添加的事件无法关联, 比如,我们很多的评论,我需要在每个评论下 ...
- wpf 线程
一.线程概述:[引用MSDN] 通常,WPF 应用程序从两个线程开始:一个用于处理呈现,一个用于管理 UI.呈现线程有效地隐藏在后台运行,而 UI 线程则接收输入.处理事件.绘制屏幕以及运行应用程序代 ...