图文验证码的实现原理:

1):准备些许图片将其存储在数据库,每一张图片对应一个标识字段。

2):在服务器端使用数组的形式将图片与标识字段组合起来。

3):随机给客户端返回图片,并接受用户输入的字段。

4):将用户输入的字段与服务器存储的与每张图片的信息进行比对。

5):相同则通过,否则不通过。

a)第一步生成验证码

createCode.php

<?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:

<?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();
}
?>
<!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在服务器端生成图文验证码(二)的更多相关文章

  1. 使用php在服务器端生成图文验证码

    图文验证码的实现原理: 1):准备些许图片将其存储在数据库,每一张图片对应一个标识字段. 2):在服务器端使用数组的形式将图片与标识字段组合起来. 3):随机给客户端返回图片,并接受用户输入的字段. ...

  2. Vcode的生成工具类,生成制定长度验证码,图文验证码工具类

    public class VCodeUtils { // 使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符 public static f ...

  3. Java生成、解析二维码

    今天遇到需求,使用Java生成二维码图片,网搜之后,大神们早就做过,个人总结一下. 目标:借助Google提供的ZXing Core工具包,使用Java语言实现二维码的生成和解析. 步骤如下: 1.m ...

  4. 微信公众号开发C#系列-11、生成带参数二维码应用场景

    1.概述 我们在微信公众号开发C#系列-7.消息管理-接收事件推送章节有对扫描带参数二维码事件的处理做了讲解.本篇主要讲解通过微信公众号开发平台提供的接口生成带参数的二维码及应用场景. 微信公众号平台 ...

  5. 【Java】生成图形验证码

    本章介绍一个能生成比较好看的图形验证码类 生成验证码工具类 package com.util; import java.awt.Color; import java.awt.Font; import ...

  6. php生成各种验证码

    片段 1 片段 2 片段 3 index.html ```<script type="text/javascript" src="jquery.min.js&quo ...

  7. php生成动态验证码 加减算法验证码 简单验证码

    预览效果: <?php /** *ImageCode 生成包含验证码的GIF图片的函数 *@param $string 字符串 *@param $width 宽度 *@param $height ...

  8. 使用Google提供的ZXing Core,Java生成、解析二维码

    1.maven项目中,pom.xml中引入ZXing Core工具包: <!-- https://mvnrepository.com/artifact/com.google.zxing/core ...

  9. Java生成随机验证码

    package com.tg.snail.core.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...

随机推荐

  1. iOS UI-文本视图(UITextView)

    #import "ViewController.h" @interface ViewController ()<UITextViewDelegate> @propert ...

  2. dubbo的ExtensionLoader

    了解4个概念:接口,实现类,wrapper,adaptive. 扩展是接口实现类被wrap之后的对象,adaptive扩展是动态生成的类(例如Dubbo$Adaptive类). dubbo框架为接口指 ...

  3. vs2015如何设置类或函数前不显示引用的数量

    这几天,从vs2012换成vs2015,感觉15版本增加了一个类或函数前提示引用的数量,这个感觉很别扭,如何取消显示这个呢? 问题如下: 取消显示这个引用的步骤: 找到菜单栏: 工具 ---> ...

  4. (C#基础)Linq学习理解

    一遍学习基础,一遍练习打字,很多乐趣. 代码 using System; using System.Collections.Generic; using System.Linq; using Syst ...

  5. Prism 4 文档 ---第11章 部署Prism应用程序

        要成功移动Prism应用到生产中,需要对部署计划为应用程序的设计过程的一部分.本章介绍了注意事项和你需要采取的准备以部署应用程序,以及你要在用户手中获得部署程序所需要采取的行动.     Si ...

  6. sgu187&&spoj7734

    题解: splay翻转(只有翻转 sgu ac,spoj tle 代码: #pragma GCC optimize(2) #include<cstdio> #include<cstr ...

  7. ORACLE telnet 1521 不通及ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务的解决

    服务器上安装了oracle11g , 防火墙上已经增加1521 入站规则.但是内网客户端配置好了TNS无法连接.telnet 1521 不通. 需要在服务器上\product\10.2.0\db_1\ ...

  8. 会话跟踪session

    会话跟踪 HTTP是“无状态”协议:客户程序每次读取Web页面,都打开到web服务器的单独的连接,而且,服务器也不自动维护客户的上下文信息.类似客户决定结账时,如何确定之前创建的购物车中哪个属于此客户 ...

  9. Introduction of Build Tool/Maven, Gradle

    什么是build tool: build tool是可以自动由源代码创建可执行的应用程序的程序. Building 包括编译.链接和打包代码成一个可用的或可执行形式. 在小型项目,开发人员常常会手动调 ...

  10. zabbix 爆高危 SQL 注入漏洞,可获系统权限(profileIdx 2 参数)

    漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统 ...