ThinkPHP框架试用

发布时间:2019-06-22  栏目:Python  评论:0 Comments

程序代码

Think\Verify类能够协理验证码的变化和表明成效。


array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')

无意中来看thinkphp的多少个pdf文书档案,它卓越的风味非常的引发作者,于是迫不比待那股热情,下载下来熟识一下。以下是最简便的一个demo。
步骤:
新建五个web目录(小编是在web根目录下新建了三个mydemo目录),复制thinkphp目录到此!
新建文件index.php作为入口文件!内容如下:

验证码检查实验

可以用Think\Verify类的check情势检查评定验证码的输入是不是正确,举个例子,下边是包裹的一个验证码检查实验的函数:

// 检测输入的验证码是否正确,$code为用户输入的验证码字符串
function check_verify($code, $id = ''){
$verify = new \Think\Verify();
return $verify->check($code, $id);
}

练习:以报到为例:

调控器方法:

<?php
namespace Home\Controller;
use Think\Controller;

class LoginController extends Controller
{
    function Login()
    {
        if(empty($_POST))
        {
            $this->display();    
        }    
        else
        {
            $code = $_POST["yzm"];
             $verify = new \Think\Verify();
           if($verify->check($code,2)) //code是用户输入的值 ,2是验证码检测标示,必须与生成的验证码标示相同才能验证
            {
                if($_POST["uid"]!="" && $_POST["pwd"]!="")
                {
                    $model = D("Users");
                    $uid = $_POST["uid"];    
                    $pwd = $_POST["pwd"];
                    $attr = $model->field("Pwd")->find($uid);
                    //var_dump($attr);
                    if($pwd==$attr["pwd"])
                    {
                        session("uid",$uid);   // 跳转页面之前将$uid存入session                    $this->success("登录成功!","Main");                        
                    }
                    else
                    {
                        $this->error("登录失败!");    
                    }
                }
                else
                    {
                        $this->error("用户名或者密码不能为空!");    
                    }
            }
            else
            {
                $this->error("验证码不正确!");    
            }
        }        
    }
//生成验证码的操作方法
    function yzm()
    {
        $config =    array(    
            'fontSize'    =>    30,    // 验证码字体大小    
            'length'      =>    4,     // 验证码位数  
            'useCurve'    =>    true,  // 是否画混淆曲线  
            'useNoise'    =>    true,  // 关闭验证码杂点
            'expire'      =>    60,    // 验证码有效期(秒)
            'useImgBg'    =>    false,  // 使用背景图片
            'useZh'       =>    true,  // 使用中文验证码
            'imageW'      =>    240,   // 验证码宽度
            'imageH'      =>    60,    // 验证码高度
            'fontttf'     =>    'simhei.ttf', // 验证码字体
        );
        $Verify = new \Think\Verify($config);
        $Verify->entry(2);//参数是生成验证码的标示,适用于同一个页面有多个验证码的时候,生成验证码的标示必须与检测验证码的标示相同,否则验证码不正确
    }
?>

请求Login方法:

图片 1

{$welcome_info}

$Verify = new \Think\Verify();
$Verify->entry();

<?php 
class IndexAction extends Action{
    public function index(){
    //图片 2
    }

?>

图片 3

为了简单,小编只定义了三个标签!且尚未进入thml代码!
接下来在IndexAction.class.php文件中加多如下的代码:

背景图片

帮助验证码背景图片作用,能够如下设置:

$Verify = new \Think\Verify();
// 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片
$Verify->useImgBg = true;
$Verify->entry();

<?php 
class IndexAction extends Action{
    public function index(){
        header(“Content-Type:text/html; charset=utf-8”);
        $this->assign(“welcome_info”,”Hello World!”);
        $this->display();
    }

?>

验证码参数

能够对转移的验证码设置相关的参数,以高达分歧的来得效果。那一个参数包涵:

参数 描述
expire 验证码的有效期(秒)
useImgBg 是否使用背景图片 默认为false
fontSize 验证码字体大小(像素) 默认为25
useCurve 是否使用混淆曲线 默认为true
useNoise 是否添加杂点 默认为true
imageW 验证码宽度 设置为0为自动计算
imageH 验证码高度 设置为0为自动计算
length 验证码位数
fontttf 指定验证码字体 默认为随机获取
useZh 是否使用中文验证码
bg 验证码背景颜色 rgb数组设置,例如 array(243, 251, 254)
seKey 验证码的加密密钥
codeSet 验证码字符集合 3.2.1 新增
zhSet 验证码字符集合(中文) 3.2.1 新增

暗许参数配置:

图片 4

参数设置使用三种方法。

实例化传入参数:

图片 5

要么应用动态设置的措施,如:

图片 6

八个两次三番自action的index类,里面有四个index函数!(index函数也是暗中同意动作!),如何操作,步骤如下:
在tpl目录下新建default文件夹,再在default下新建index.html文件,thinkphp暗中认可使用default下的模板!index.html文件内容如下:

上边是最简易的不二秘籍生成验证码:

程序代码

假设您必要在叁个页面中生成七个验证码的话,entry方法必要传入可标记的消息。

使用assign将welcome_info标签赋值替换为”Hello
World!”,display函数输出替换结果!
再度走访http://localhost:8080/mydemo/index.php,可以看到输出内容为"Hello
World!”,我们想要的结果!当然完整的访问地址应该是那样的:
http://localhost:8080/mydemo/index.php
格式:入口文件+模块名+操作名
能够看看八个地方的访问结果是完全一样的!
thinkphp框架丰硕的思量了SEO,具有援助PDO、AJAX等重重本性!特别值得学习和用来实际!当然它的代码越来越多的依赖PHP5,选用的时候理应专注!

华语验证码

一旦要运用汉语验证码,能够安装:

$Verify = new \Think\Verify();
// 验证码字体使用 ThinkPHP/Library/Think/Verify/zhttfs/simhei.ttf
$Verify->useZh = true;
$Verify->entry();

呈现效果如图:

图片 7

假诺无法平时呈现,请确认你的 ThinkPHP/Library/Think/Verify/zhttfs/
目录下边存在汉语字体文件。

若ThinkPHP/Library/Think/Verify/zhttfs/里面没有汉语字体文件,能够下载或然从C:\Windows\Fonts\中间找到汉语字体文件复制过来,注意字体文件扩充名称为.ttf。

概念框架的目录是在当前目录的thinkphp的目录下,应用程序的称号是Hello,目录为当前目录,当然你也得以放在子目录中,不会潜移默化最终访问的位置结构!
笔者用的是1.0.4版本的,不用手动生成目录结构!只要定义好了入口文件,就能够在首先次运行的时候自动生成!这几个特点是在1.0.2本子中开头参预的!相比有利!
开发浏览器,访问地址
http://localhost:8080/mydemo/index.php
看来提醒音讯了吧!
说美赞臣(Meadjohnson)下,thinkphp的地方结构是这么的!
http://&lt;serverName&gt;/\[&lt;appName&gt;\]/&lt;项目入口文件&gt;/&lt;moduleName&gt;/&lt;actionName&gt;
假设未有一些名moduleName 和 actionName,则默许使用Index 模块和 index
操作(能够在项目
配置文件中退换)
thinkphp是依据MVC结构的,假使您不清楚MVC,照旧先精通一下吗!
再尝试模板的行使!
恐怕先在lib/action下看看啊!有个IndexAction.class.php的文书,内容大意如下:

验证码字体

暗中同意情形下,验证码的书体是随意使用 ThinkPHP/Library/Think/Verify/ttfs/目录上面包车型客车字体文件,我们得以钦命验证码的书体,比方:

$Verify = new \Think\Verify();
// 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf
$Verify->fontttf = '5.ttf';
$Verify->entry();

<?php
define(‘THINK_PATH’,’thinkphp’);
define(‘APP_NAME’, ‘Hello’);
define(‘APP_PATH’, ‘.’);
require(THINK_PATH.”/ThinkPHP.php”);
$App = new App();
$App->run();
?>

上边的代码会转变私下认可的验证码图片并出口,呈现如下:

变化的验证码音讯会保留到session中,包罗的数目有:

留下评论

网站地图xml地图