使用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 生成本地验证码
在应用程序注册.登陆或者有关支付确认的界面,经常会用到验证码,验证码有的是通过手机发送获取的,有的是在本地点击获取的,通过手机发送获取的动态验证码可以使用第三方类库实现,本地点击获取的是在本地自己绘制 ...
随机推荐
- 9.OpenStack安装web界面
安装仪表板 安装仪表板组件 yum install -y openstack-dashboard httpd mod_wsgi memcached python-memcached 编辑/etc/op ...
- Python之jieba分词
jieba,很有意思的一个模块,专门用来分词. import jieba # sentence:分割的中文字符串 # cut_all:是否采用全模式,默认为False表示精确模式 # HMM:表示是否 ...
- SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛*
题目链接 Problems Problem A Problem B bitset…… Problem C Problem D Problem E Problem F Problem G 考虑最小生 ...
- Python的并发并行[2] -> 队列[0] -> queue 模块
queue 模块 / queue Module 1 常量 / Constants Pass 2 函数 / Function Pass 3 类 / Class 3.1 Queue类 类实例化:queue ...
- Sql Jions 的简易理解
Sql Jions 的简易理解 Select * from TableA A left jion TableB B on A.key = B.key Select * from TableA ...
- Kali Linux Wine32英文字体不显示问题
Kali Linux Wine32英文字体不显示问题 Kali Linux提供了Wine32工具.在运行Wine32后,界面可以显示中文,但不能显示英文文字.英文文字均显示为方块.这是由于缺少对应的 ...
- Codeforces Round #325 (Div. 2) Alena's Schedule 模拟
原题链接:http://codeforces.com/contest/586/problem/A 题意: 大概就是给你个序列..瞎比让你统计统计什么长度 题解: 就瞎比搞搞就好 代码: #includ ...
- 使用Jenkins搭建iOS开发的CI服务器
目录 简介 下载并运行 Jenkins配置 安装git插件 E-mail设置 自动化构建 远程仓库设置 触发条件 ...
- [置顶]
kubernetes资源类型--deployment
Deployment(中文意思为部署.调度)提供了一种更加简单的更新RC和Pod的机制,K8S版本1.2实现的.通过在Deployment中描述所期望的集群状态,Deployment Controll ...
- windows和linux之间上传下载文件的两种方法
一 用rz和sz http://blog.csdn.net/register_man/article/details/53860774 http://www.jb51.net/article/7 ...