使用php在服务器端生成图文验证码
图文验证码的实现原理:
1):准备些许图片将其存储在数据库,每一张图片对应一个标识字段。
2):在服务器端使用数组的形式将图片与标识字段组合起来。
3):随机给客户端返回图片,并接受用户输入的字段。
4):将用户输入的字段与服务器存储的与每张图片的信息进行比对。
5):相同则通过,否则不通过。
a)第一步生成验证码
createCode.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?php header( "content-type:text/html;charset=utf-8" ); session_start(); //开启服务器 存储 $table = array ( 'pic0' => "猫" , 'pic1' => '狗' , 'pic2' => '猴' , 'pic3' => '鱼' ); $index =rand(0,3); //生成随机数 $value = $table [ 'pic' . $index ]; //取出随机值 $_SESSION [ 'authcode' ]= $value ; //将值存储在服务器端 $filename =dirname( __FILE__ ). '\\pic' . $index . '.jpg' ; //给出文件的地址 $content = file_get_contents ( $filename ); //读取文件的内容 ob_clean(); //清除缓存 header( "content-type:image/jpg" ); //规定以jpg的形式输出图片 echo $contents ; //输出图片文件 ?> |
b)使用验证码
useCode.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php header( "content-type:text/html;charset=utf-8" ); if (isset( $_REQUEST [ "authcode" ])){ session_start(); if ( $_SESSION [ 'authcode' ]== $_REQUEST [ 'authcode' ]){ //$_REQUEST['authcode']..获取输入框的值 echo "<font>验证通过</font>" ; } else { echo "<font>验证失败</font>" ; } exit (); } ?> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<! DOCTYPE html> < html > < head > < meta charset="utf-8"> < title >验证码正确</ title > </ head > </ html > < body > < form action="useCode.php"> < p >验证码图片: < img src="createCode.php?=<?php echo rand();?> onclick="this.src='createCode.php?+<? php rand(0,200)?>'" alt="" "> </ p > < p >输入验证码的内容: < input type="text" name="authcode" value=""> </ p > < p > < input type="submit" value="提交"> </ p > </ form > </ body > |
事实截图:
使用php在服务器端生成图文验证码的更多相关文章
- 使用php在服务器端生成图文验证码(二)
图文验证码的实现原理: 1):准备些许图片将其存储在数据库,每一张图片对应一个标识字段. 2):在服务器端使用数组的形式将图片与标识字段组合起来. 3):随机给客户端返回图片,并接受用户输入的字段. ...
- Vcode的生成工具类,生成制定长度验证码,图文验证码工具类
public class VCodeUtils { // 使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符 public static f ...
- 【Java】生成图形验证码
本章介绍一个能生成比较好看的图形验证码类 生成验证码工具类 package com.util; import java.awt.Color; import java.awt.Font; import ...
- php生成动态验证码 加减算法验证码 简单验证码
预览效果: <?php /** *ImageCode 生成包含验证码的GIF图片的函数 *@param $string 字符串 *@param $width 宽度 *@param $height ...
- Java生成随机验证码
package com.tg.snail.core.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
- PHP利用jquery生成各种验证码和Ajax验证
PHP生成验证码图片 PHP生成验证码的原理:使用PHP的GD库,生成一张带验证码的图片,并将验证码保存在Session中.PHP 生成验证码的大致流程有: .产生一张png的图片: .为图片设置背景 ...
- php生成动态验证码
<?php/*调用示例*/session_start();$checkCode='';$chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPRSTUVWXYZ ...
- C#生成图形验证码
先看效果: 再上代码 public class CaptchaHelper { private static Random rand = new Random(); private static in ...
- iOS 生成本地验证码
在应用程序注册.登陆或者有关支付确认的界面,经常会用到验证码,验证码有的是通过手机发送获取的,有的是在本地点击获取的,通过手机发送获取的动态验证码可以使用第三方类库实现,本地点击获取的是在本地自己绘制 ...
随机推荐
- .NET APlayer播放器 demo
工作需要,想开发一款播放器,当无意间浏览到APlayer的时候大爱啊,有木有迅速投入精力,在APlayer论坛看大牛们的作品及经验,看SDK中提供的chm电子书最后看了博客园中周见智的文章(灰常好!最 ...
- net页面生命周期
ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件处理程序代码以及进行呈现.了解页的生命周期非常重要,这样就能 ...
- 关于ScrollView嵌套RecyclerView出现item显示不全的问题
最近使用ScrollView时,发现里面嵌套Listview显示不全,试过重写Listview的onMeasure(),并没有起作用.然后将ListView换成RecyclerView后,高度还是显示 ...
- HDU 6235.Permutation (2017中国大学生程序设计竞赛-哈尔滨站-重现赛)
Permutation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Tot ...
- bzoj2301(莫比乌斯反演)
bzoj2301 题意 求区间 [a, b] 和 区间 [c, d] 有多少对数 (x, y) 使得 gcd(x, y) = k . 分析 参考ppt 参考blog 考虑用容斥分成四次查询, 对于每次 ...
- (寒假集训)Watering the Fields (最小生成树)
Watering the Fields 时间限制: 1 Sec 内存限制: 64 MB提交: 26 解决: 10[提交][状态][讨论版] 题目描述 Due to a lack of rain, ...
- 微信小程序开发,上传wx.uploadFile 返回参数处理
这真的是个坑,前端看了半天,说是字符串,让后台处理,后台说返回的是正确的,原来这个请求就是返回的string类型,见下图,无法取到code,需要前台自己转化. 以下为百度出来的参考: wx.reque ...
- Laravel 使用firstOrCreate 报错MassAssignmentException
今天尝试使用firstOrCreate去优化一段查找不到即创建的代码,结果发现会报MassAssignmentException错误,提示我参数错误,去网上找了好久没有找到结果,最后庆幸自己解决了,把 ...
- 墨卡托投影、高斯-克吕格投影、UTM投影及我国分带方法
转自原文 墨卡托投影.高斯-克吕格投影.UTM投影及我国分带方法 一.墨卡托投影.高斯-克吕格投影.UTM投影 1. 墨卡托(Mercator)投影 墨卡托(Mercator)投影,是一种" ...
- 使用Jenkins搭建iOS开发的CI服务器
目录 简介 下载并运行 Jenkins配置 安装git插件 E-mail设置 自动化构建 远程仓库设置 触发条件 ...