原文:Thinkphp框架拓展包使用方式详细介绍--验证码实例(十一)

拓展压缩包的使用方式详细介绍



1:将拓展包解压:ThinkPHP3.1.2_Extend.zip   --> 将其下的 \Extend  文件全部复制

2:将复制的文件放入项目中 E:\wamp\www\thinkphp\ThinkPHP\Extend(安装的时候这里面是空文件),你自己的项目目录

即可

=============================以下是,拓展包中验证码的使用========================================

比如用到拓展包的验证码:(看手册-->杂项)

在:E:\wamp\www\thinkphp\Home\Lib\Action\ 新建:PublicAction.class.php  代码如下  --必须加

//直接使用code里面的代码即可生成验证码

class PublicAction extends Action{  //按照手册说明走就行

function
code(){

import('ORG.Util.Image');

Image::buildImageVerify();

}

}

//目录/thinkphp/index.php/Public/code点击变换验证码onclick

前台模板页面调用验证码:

<img src="__APP__/Public/code" onclick='this.src=this.src+"?"+Math.random()'/> 即可生成验证码

全部html登录页面

<form action='__URL__/do_login' method='post' name='myForm'>

用户名:<input type='text' name='username'/><br/>

密 码:<input type='password' name='password'/><br/>

验证码:<input type='text' name='code'/>

<img src="__APP__/Public/code" onclick='this.src=this.src+"?"+Math.random()'/>

</br/>

<img src='__PUBLIC__/Images/leyangjun.gif' onclick="sub()"/>

</form>

//登录判断验证码  加:LoginAction.class.php(模块)

class
LoginAction extends Action {

function do_login(){

//获取用户名和密码等。和数据库中比对,有该用户允许登录否则输出错误页面

$username=$_POST['username'];

$password=$_POST['password'];

$code=$_POST['code'];  //输入框;<input type='text' name='code'/>



if($_SESSION['verify']!==md5($code)){

$this->error('验证码错误!');

}





$m=M('User');

$where['username']=$username;

$where['password']=$password;

$i=$m->where($where)->count();

if($i>0){

$this->redirect('User/index');

}else{

$this->error('该用户不存在');

}

}

}

Thinkphp框架拓展包使用方式详细介绍--验证码实例(十一)的更多相关文章

  1. thinkPHP 模板中的语法知识 详细介绍(十二)

    原文:thinkPHP 模板中的语法知识 详细介绍(十二) 本章节:介绍模板中的语法,详细的语法介绍 一.导入CSS和JS文件    ==>记住常量的是大写 1.css link .js  sc ...

  2. ThinkPHP表单令牌验证功能详细介绍

    注:TP版本为3.1.3 在ThinkPHP框架下,两次提交同一个表单,比如提交信息后在浏览器点击后退退回上次的页面,重新点击提交按钮,就会提示“表单令牌错误”的信息. ThinkPHP新版内置了表单 ...

  3. linux awk 内置函数详细介绍(实例)

    这节详细介绍awk内置函数,主要分以下3种类似:算数函数.字符串函数.其它一般函数.时间函数 一.算术函数: 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y ...

  4. Linux下rpm、yum和源码三种安装方式详细介绍

    第1章 源码安装 源码包安装会比RPM包安装慢,是因为RPM的软件包是根据特定系统和平台而指定的,经常一种 程序会提供很多RPM包的格式,用户根据系统情况选择适合的RPM包直接安装,而源码包相当于 通 ...

  5. 通过jarjar.jar来替换jar包名的详细介绍

    有时候我们根据一些场景 需要替换第三方jar包的包名,比如Android广告平台sdk,更换他们jar包包名的话,可以防止市场检测到有广告插件,所以,今天就介绍一下如何使用jarjar.jar工具来替 ...

  6. 深度包检测(DPI)详细介绍

    目录 简介 背景 流量识别 常用功能 具体功能 做法 特征识别 架构举例 部署方式 串接方式 并接方式 存在问题 检测引擎举例 参考文献 简介 DPI(Deep Packet Inspection)深 ...

  7. Redis的两种持久化方式详细介绍

    一,Redis是一款基于内存的数据库,可以持久化,在企业中常用于缓存,相信大家都比较熟悉Redis了,下面主要分享下关于Redis持久化的两种模式 1.半持久化模式(RDB,filesnapshott ...

  8. SSH2框架实现注冊发短信验证码实例

    这两天開始写程序了,让用SSH2框架,曾经没有接触过Java项目更没有接触过SSH2框架,所以用注冊開始了我Java之旅.后来发现,后台代码挺easy理解的,跟.net的差点儿相同.就是层与层之间的调 ...

  9. ThinkPHP框架的一些基础应用

    这是俺滴师傅给俺传授了的知识,特在此分享. TP框架,做PHP开发的都应该有所耳闻.下面,我们就来说说入口文件的生成: 创建新项目时,首先,在目录文件下创建一个新的文件夹.然后将Thinkphp框架文 ...

随机推荐

  1. WinForm - ListView点击空白事件

    有时看似很小的一个问题却可能困扰我们许久,比如ListView这个问题,其Click事件只是在有选中项的时候才触发,点击其空白处(无选中项)是不会触发Click事件的,找了许久才终于找到解决这个问题的 ...

  2. IP编辑控件(因为封装的是系统自带控件,所以也使用了CreateSubClass,不过为啥要封装CN_COMMAND和CN_NOTIFY不是很明白)

    最近需要用一个IP输入控件,网上找了几个,都不符合效果,有些还有一些奇怪的Bug.后来发现原来系统已经提供了IP地址编辑控件,只是系统提供的控件不能设置只读效果.网上找了下资料,封装了一下,自己迂回一 ...

  3. 超详细SDK Hello World

    Windows应用程序的基本运行机制与HelloWin程序详细解 总的来说最基本的Windows应用程序的运行执行顺序总是以如下的基本顺序执行的. 顺序结构: 调用WinMain函数开始执行--à定义 ...

  4. maven项目部署到Repository(Nexus)

    目录[-] (一)下载并安装Nexus (二)配置Nexus Repository 说明: (三)在项目中配置Nexus Repository的信息 (四)发布到Nexus Repository 本文 ...

  5. NProxy——Mac和Linux平台下的Fiddler

    Fiddler 相信大家,尤其是前端工程师们都知道. 用它的文件替换功能,将线上的静态资源文件(JS.CSS.图片)替换为本地相应的文件,来调试线上(代码都被压缩过)UI的问题.的确是一神器.(相比, ...

  6. Android ListView条目全选功能,不用checkbox实现!

    大家好,翻了翻曾经的笔记,发现了一个我特别标记的功能,那就是ListView全选功能,顿时想起了我那个时候苦逼的生涯,因为我大学机械出身,大学毕业了都不知道什么叫代码,在58干了一段销售.实在是干不下 ...

  7. HTML - HTML Commonly Used Character Entities

    HTML Entities Some characters are reserved in HTML. It is not possible to use the less than (<) o ...

  8. Python 中的用户自定义类型

    Python中面向对象的技术 Python是面向对象的编程语言,自然提供了面向对象的编程方法.但要给面向对象的编程方法下一个定义,是很困难的.问题关键是理解对象 的含义.对象的含义是广泛的,它是对现实 ...

  9. QNX 线程 调度策略 优先级 时钟频率 同步

    /* * barrier1.c */ #include <stdio.h>#include <unistd.h>#include <stdlib.h>#includ ...

  10. LPCTSTR

    LPCTSTR类型: L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32位操作系统中, long指针和near指针及far修饰符都是为了兼容 ...