登录和验证(控制器)

<?php
namespace Come\Controller;
use Think\Controller;
class RenController extends Controller
{
public function denglu()
{
//var_dump(get_defined_constants(true));
// 判断提交方式
if (IS_POST) {
// 实例化users对象
$users = D('users');
// 自动验证 创建数据集
if (!$data = $users->create()) {
// 防止输出中文乱码
header("Content-type: text/html; charset=utf-8");
exit($users->getError());
}
// 组合查询条件
$where = array();
$where['uid'] = $data['uid'];//取输入的用户名
$result = $users->where($where)->field('uid,pwd')->find();
// 验证用户名 密码
if ($data['uid'] == $result['uid']) //判断用户名是否正确
{ if ($data['pwd'] == $result['pwd']) //判断密码是否正确
{
$verify = new \Think\Verify();//取显示中的验证码
if ($verify->check(I('post.verify'))) //判断输入的验证码和显示的验证码是否一致
{
// 存储session
session('uid', $result['uid']); // 当前用户名
$this->success('登录成功,正跳转至首页...',U('Index/index'),3);
}
else
{
$this->error('登录失败,验证码不正确!');
}
}
else
{
$this->error('登录失败,密码不正确!');
}
}
else
{
$this->error('登录失败,用户名不正确!');
}
}
else
{
$this->display();
}
}
* 验证码
*/
public function verify()
{
// 实例化Verify对象
$verify = new \Think\Verify(); // 配置验证码参数
$verify->fontSize = 14; // 验证码字体大小
$verify->length = 4; // 验证码位数
$verify->imageH = 34; // 验证码高度
$verify->useImgBg = false; // 开启验证码背景
$verify->useNoise = false; // 关闭验证码干扰杂点
$verify->entry(); }

  登录页面:

<body style=" background-color:#099">

  <div class="container">

       <!--登录-->
<div class="row">
<div class="col-xs-12 deng">
<div class="panel panel-warning p1">
<div class="panel-heading">
<h3 class="panel-title">留言板</h3>
</div> <div class=" panel-body p2">
<div class="input-group" style="margin-top:10px;color:#5f5f5f">
<h4>请使用账号和密码登录</h4>
</div>
<form action="__ACTION__" method="post">
<div class="input-group" style="margin-top:20px">
<span class="input-group-addon">用户名</span>
<input id="uid" type="text" class="form-control" name="uid" placeholder="username" >
</div>
<div class="input-group" style="margin-top:20px">
<span class="input-group-addon">密码   </span>
<input id="pwd" type="password" class="form-control" name="pwd" placeholder="password"/>
</div>
<div class="input-group has-feedback ">
<input type="text" name="verify" class="form-control" placeholder="验证码" style="width:100px;" />
<!--<span class="glyphicon glyphicon-qrcode form-control-feedback" style="right:120px;"></span>-->
<span><img class="verify" src="{:U(verify)}" alt="验证码" onClick="this.src=this.src+'?'+Math.random()" /></span>
</div>
<div class="input-group" style="margin-top:20px">
<button id="login" type="submit" class="btn btn-danger"
>登    录</button>
</div> </form>
</div> </div>
</div>
</div>
</body>

  

//判断用户名是否正确

tinkphp登录验证码的使用的更多相关文章

  1. Selenium2学习-018-WebUI自动化实战实例-016-自动化脚本编写过程中的登录验证码问题

    日常的 Web 网站开发的过程中,为提升登录安全或防止用户通过脚本进行黄牛操作(宇宙最贵铁皮天朝魔都的机动车牌照竞拍中),很多网站在登录的时候,添加了验证码验证,而且验证码的实现越来越复杂,对其进行脚 ...

  2. Java实现登录验证码

    登录验证码 Servlet /* 从请求中获取数据,获取验证码的session的值转为String类型,       销毁,防止返回后验证码不刷新,重新验证成功       判断验证码是否相同(忽略大 ...

  3. selemiun 自动化测试登录验证码处理

    selemiun 自动化测试登录验证码处理 一.软件及插件的安装 1.火狐浏览器版本(55.0(x64 zh-CN):https://www.cnblogs.com/sandysun/p/783811 ...

  4. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十七):登录验证码实现(Captcha)

    登录验证码 登录验证是一般系统都会有的功能,验证的方式也多种多样,比如输入式验证码,拖动式验证条,拖动式验证拼图等等. 我们这里先实现常规的输入验证码的方式,右边显示验证码图片,点击可刷新,左边输入验 ...

  5. 通过Cookie跳过登录验证码【限cookie不失效有用】

    验证码,相信每个写web自动化测试的同学来说,都是个头疼的事,怎么办呢? 方法还是有的,先说今天这种方式,通过cookie绕过登录验证码 思路: 需要你通过抓包工具抓到你登录的cookie 接下来开始 ...

  6. 登录验证码实现(Captcha)

    登录验证码 登录验证是一般系统都会有的功能,验证的方式也多种多样,比如输入式验证码,拖动式验证条,拖动式验证拼图等等. 我们这里先实现常规的输入验证码的方式,右边显示验证码图片,点击可刷新,左边输入验 ...

  7. Python - WebDriver 识别登录验证码

    Python - WebDriver 识别登录验证码 没什么可说的直接上代码! #-*-coding:utf-8-*- # Time:2017/9/29 7:16 # Author:YangYangJ ...

  8. 基于ajax 的 几个例子 session ,ajax 实现登录,验证码 ,实现ajax表单展示

    headers: {"X-CSRFToken": $("[name='csrfmiddlewaretoken']").val()},data:$(". ...

  9. 15.Python实现识别登录验证码(入门)

    1.若想识别登录验证码,需要安装:Tesseract-OCR,其下载地址为:http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tess ...

随机推荐

  1. TestNG

    一.TestNG 是什么 ? 脱胎于业界标杆的Junit,并超于Junit,主要原因是由于当时的JUnit3版本不支持annotation,使用不够灵活. TestNG不再需要test前缀的命名方式. ...

  2. Python开发【前端】:Ajax

    Ajax Ajax即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,AJAX = ...

  3. android:descendantFocusability用法简析

    开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了 ...

  4. JSONModel对架构的影响及解决方案

    越来越多的项目使用CocoaPods,使用CocoaPods很有可能会用过JSONModel. JSONModel是个很强大的库,只要根据JSON定义好对应的类并继承JSONModel,就可以把JSO ...

  5. SqlServer数据库空间使用情况常用命令

    --最简单的办法就是使用SSM客户端,报表查看 --查询数据文件的空间情况 dbcc showfilestats --查询日志文件的空间情况 dbcc sqlperf(logspace) --查询te ...

  6. Hibernate不能自动建表解决办法

    最近开始学Hibernate,看的是李刚的那本<轻量级java ee企业应用实战>.头一个hibernate程序,我原原本本的按照书上例子写下来,同时只是改动了些mysql的连接参数,并且 ...

  7. Javascript-9-1-OOP-5-链式调用

    <html lang="en"> <head> </head> <body> <div class="" ...

  8. 存储过程中的output跟return区别及实例说明

    存储过程return,表示该存储过程执行到当当前return位置,不再向下执行: 存储过程写法:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER ...

  9. gradle使用

    查看子工程引用的jar包 gradle child_project:dependencies > dep.txt

  10. MVC 中301永久重定向

    public class PermanentRedirectResult : ViewResult { public string Url { get; set; } public Permanent ...