登录界面使用验证码是现在网站大多会采用的方式,目的就是为了防止部分用户频繁地登录注册网站,导致网站崩溃。接下来就来说明一下如何在CI框架下实现验证码登录。

实现验证码的思路很简单,首先随机生成几位验证码(4位或6位均可以),然后将验证码存于SESSION中,方便验证时候检测。最麻烦的部分是将验证码贴在图片上,这里的图片需要我们自己画出来。

 function getCode($num=4,$w=60,$h=31) {$code = "";for ($i = 0; $i < $num; $i++) {$code .= rand(0, 9);}//4位验证码也可以用rand(1000,9999)直接生成//将生成的验证码写入session,备验证页面使用$_SESSION["helloweba_num"] = $code;//创建图片,定义颜色值Header("Content-type: image/PNG");$im = imagecreate($w, $h);$black = imagecolorallocate($im, 0, 0, 0);$gray = imagecolorallocate($im, 200, 200, 200);$bgcolor = imagecolorallocate($im, 255, 255, 255);imagefill($im, 0, 0, $gray);//画边框imagerectangle($im, 0, 0, $w-1, $h-1, $black);//随机绘制两条虚线,起干扰作用$style = array ($black,$black,$black,$black,$black,$gray,$gray,$gray,$gray,$gray);imagesetstyle($im, $style);$y1 = rand(0, $h);$y2 = rand(0, $h);$y3 = rand(0, $h);$y4 = rand(0, $h);imageline($im, 0, $y1, $w, $y3, IMG_COLOR_STYLED);imageline($im, 0, $y2, $w, $y4, IMG_COLOR_STYLED);//在画布上随机生成大量黑点,起干扰作用;for ($i = 0; $i < 80; $i++) {imagesetpixel($im, rand(0, $w), rand(0, $h), $black);}//将数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成$strx = rand(3, 8);for ($i = 0; $i < $num; $i++) {$strpos = rand(1, 6);imagestring($im, 5, $strx, $strpos, substr($code, $i, 1), $black);$strx += rand(8, 12);}imagepng($im);imagedestroy($im);}

在CI框架下实现验证码登录相关推荐

  1. SSM框架下实现验证码图片验证功能(源码)

    SSM框架下实现验证码图片验证功能 背景图片资源路径 https://download.csdn.net/download/hero_qhz/10322064 一.首先,在pom里面加上需要用的资源j ...

  2. CI框架下 新浪微博登录接口完整版

    https://www.cnblogs.com/yznyzcw/p/3756622.html#top 说明:本贴只适合CI框架.功能实现:登录接口跳转链接成功,获取用户信息(包括最重要的u_id)成功 ...

  3. ie浏览器框架不显示_thinkphp框架下后台验证码不显示

    刚刚在搭建网站遇到thinkphp框架下一个网站后台验证码无法显示,经过百度,谷歌研究,最后群求官方帮助文件发现是 输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出):(打开验证码文件为乱码 ...

  4. 三十一、CI框架之使用验证码

    一.CI的验证码功能用着很是舒服,需要在根目录下新建一个captcha的验证码文件夹用于存放生产的图片,代码如下: 二.浏览器效果如下: 总结:关于验证码生产函数,有很多参数可以设置,包括字体,验证码 ...

  5. iofactory.php,CI框架下引入类库资源PHPPowerPoint报出“ Cannot redeclare class IOFactory”...

    在application/library下引用phpWord已经实现了导出word,但我在引入PHPPowerPoint时,总是提示重复申明IOfactory.PHPPowerPoint在没引入框架前 ...

  6. 浅谈SSM框架下实现简单登录界面

    SSM框架搭建结果 Login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8 ...

  7. ssm框架下手机验证码、图片验证码的实现

    手机验证码 第一步:网上找一个第三方短信接口平台,大多数这样的平台都会有免费试用的通知短信.我这里用的是秒滴科技,注册个账号,赠送200条短信,足够项目练手使用了. 第二步:去用户中心查看TOKEN( ...

  8. CI框架下nginx重写规则

    因为: server{listen 80;server_name 222.73.130.124;location / {index index.html index.htm index.php;roo ...

  9. Spring Security OAuth2 优雅的集成短信验证码登录以及第三方登录

    基于SpringCloud做微服务架构分布式系统时,OAuth2.0作为认证的业内标准,Spring Security OAuth2也提供了全套的解决方案来支持在Spring Cloud/Spring ...

最新文章

  1. mysql 端口time_wait_TIME_WAIT状态全是3306解决办法
  2. 【PySpark入门】手把手实现PySpark机器学习项目-回归算法
  3. PowerShell批量检查域密码弱口令
  4. HttpClient异常处理手册
  5. vue路由匹配实现包容性_我们甚至没有进行包容性的讨论
  6. shell脚本常用语句用法笔记
  7. 论文浅尝 | 知识图谱相关实体搜索
  8. web-http协议-请求协议-响应协议
  9. Android Themes与Styles实践
  10. postgresql常用函数及操作符及类型转换
  11. 北京Uber优步司机奖励政策(4月7日)
  12. 【机器人】基于指数积的机械臂运动学标定
  13. vue控制台报错Duplicate keys detected: 'xxxxx'. This may cause an update error.解决方案
  14. 百度翻译API 错误码: 52003,错误信息: UNAUTHORIZED USER
  15. 一起学JAVA 接口 面向接口开发
  16. Java 高并发之魂
  17. Java 中ArrayList中的重复数据
  18. jdk环境变量配置成功只需三步
  19. clang++.exe: error: unknown argument: ‘-static-openmp‘ ninja: build stopped: subcommand failed.
  20. 我爱你宠物网——创业笔记(三)

热门文章

  1. cpu224 stm32源码,西门子224/226PLC源码/stm32源码,西门子 plc运行源代码
  2. 基于vue2全家桶开发的匿名朋友圈及聊天应用
  3. wbe自动化测试----xpath定位与CSS定位
  4. 上海大学计算机科学与技术专业选修课怎么选,计算机科学与技术培养方案-上海大学.doc...
  5. Subsonic介绍及使用
  6. Linux安装pyhive
  7. MIKE 21 教程 1.1 网格搭建界面介绍之点线面的创建 (Mesh Generator 工具)
  8. matlab编程实现自适应均值滤波和自适应中值滤波
  9. 南京要求墓地实行一墓一价明码标价对外销售-墓地销售-公墓-墓地价格上涨
  10. 彻底解决快播不可点播方法