使用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 生成本地验证码
在应用程序注册.登陆或者有关支付确认的界面,经常会用到验证码,验证码有的是通过手机发送获取的,有的是在本地点击获取的,通过手机发送获取的动态验证码可以使用第三方类库实现,本地点击获取的是在本地自己绘制 ...
随机推荐
- BufferedInputStream&BufferedOutputStream
使用字符缓冲区相关实现copy文件: public static void main(String[] args) { //创建文件对象指定要拷贝的文件路径(源文件),文件须存在,测试用例不做判断 F ...
- python update数据
#!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/11/23 23:57 # @Author : lijunjiang # @Fi ...
- poj 1873(枚举所有的状态+凸包)
The Fortified Forest Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 6115 Accepted: 1 ...
- PHP成生若干位防伪码的方法
public static function createCode($length =16) { $arr = array_merge(range(0, 9), range('a', 'z')); / ...
- FZU-2216 The Longest Straight(尺取法)
Problem 2216 The Longest Straight Accept: 523 Submit: 1663Time Limit: 1000 mSec Memory Limit ...
- 【bzoj1485:】【 [HNOI2009]有趣的数列】模任意数的卡特兰数
(上不了p站我要死了,侵权度娘背锅) Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇 ...
- kong流程学习
kong: 根据Nginx的不同执行阶段,kong先执行初始化master和worker进程. init_by_lua_block { require 'resty.core' kong = requ ...
- 七. 多线程编程6.isAlive()和join()的使用
如前所述,通常你希望主线程最后结束.在前面的例子中,这点是通过在main()中调用sleep()来实现的,经过足够长时间的延迟以确保所有子线程都先于主线程结束.然而,这不是一个令人满意的解决方法,它也 ...
- 六. 异常处理10.Java的内置异常
在标准包java.lang中,Java定义了若干个异常类.前面的例子曾用到其中一些.这些异常一般是标准类RuntimeException的子类.因为java.lang实际上被所有的Java程序引入,多 ...
- 彗星撞地球 | 近25万倍压缩的精品3D动画
文章目录 写在前面 Prophecy<彗星撞地球> 下载地址 简概 注意 3D射击小游戏 下载地址 简概 写在前面 WareZ是个无形的组织,号称"不以赢利为目的纯技术团体&qu ...