这里我们介绍图片验证码的制作,有关字符验证码能够參考下面文章:

点击打开链接

图片验证码的制作分三步:

1.制作图片库

2.随机选取一张图片

3.输出图片内容

代码例如以下(这里为了方便我直接用的本地的图片,实际中会有大量图片。路径存放在数据库中):

<?php
session_start();
$data = array(
dirname(__FILE__).'\pics\pic0.jpg'=>'狗',
dirname(__FILE__).'\pics\pic1.jpg'=>'猫',
dirname(__FILE__).'\pics\pic2.jpg'=>'鱼',
dirname(__FILE__).'\pics\pic3.jpg'=>'猪',
dirname(__FILE__).'\pics\pic4.jpg'=>'马',
dirname(__FILE__).'\pics\pic5.jpg'=>'驴',
dirname(__FILE__).'\pics\pic6.jpg'=>'鸟',
dirname(__FILE__).'\pics\pic7.jpg'=>'鸡',
dirname(__FILE__).'\pics\pic8.jpg'=>'鸭',
dirname(__FILE__).'\pics\pic9.jpg'=>'象',
); $rnd = rand(0,9);
$img = dirname(__FILE__).'\pics\pic'.$rnd.'.jpg'; $_SESSION['authcode'] = $data[$img]; $content = file_get_contents($img);
header("content-type: image/png");
echo $content;

client:

<?php
if(isset($_REQUEST['authcode'])){
session_start();
if(($_REQUEST['authcode']) == $_SESSION['authcode']){
echo '<font color="#0000cc">输入正确</font>';
}else{
echo '<font color="#cc0000"><b>输入错误</b></font>';
}
exit();
} ? > <!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="./form.php">
<p>
验证码图片:<img id="captch_code" border="1" src="./captcha_img.php?r=<?php echo rand();?>" witdh="100px" />
<a href="javascript:void(0)" onclick="document.getElementById('captch_code').src='./captcha_img.php?r='+Math.random()">换一个</a>
</p>
<p>图片内容:<input type="text" name="authcode" value="" /> </p>
<p><input type="submit" value="提交" style="padding:6px 20px;"></p>
</form>
</body>
</html>

结果图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

php验证码--图片的更多相关文章

  1. Struts2 验证码图片实例

    本文转载于DongLiYang的博客http://www.cnblogs.com/dongliyang/archive/2012/08/24/2654431.html 其中修改过一部分,针对使用注解而 ...

  2. java web学习总结(九) -------------------通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  3. android 生成验证码图片

    (转自:http://blog.csdn.net/onlyonecoder/article/details/8231373) package com.nobeg.util; import java.u ...

  4. delphi WebBrowser控件上网页验证码图片识别教程(一)

    步骤一:获取网页中验证码图片的url地址 在delphi中加入一个BitBtn和一个memo以及WebBrowser控件实现网页中验证码图片的url地址的获取 程序如下:procedure TForm ...

  5. 学习笔记:利用GDI+生成简单的验证码图片

    学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...

  6. JavaWeb---总结(九)通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片  1 package gacl. ...

  7. Java 生成验证码图片

    生成验证码图片并对提交的输入进行验证 // HttpServletResponse常见应用——生成验证码 // 利用BufferedImage类生产随机图片 public static final i ...

  8. javaweb学习总结(九)—— 通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  9. 012. asp.net生成验证码图片(汉字示例/字母+数字)

    protected void Page_Load(object sender, EventArgs e) { //生成验证码图片的基本步骤 string checkCode = "新年快乐& ...

  10. 验证码图片生成工具类——Captcha.java

    验证码图片生成工具,使用JAVA生成的图片验证码,调用getRandcode方法获取图片验证码,以流的方式传输到前端页面. 源码如下:(点击下载  Captcha.java) import java. ...

随机推荐

  1. Flink(一)Flink的入门简介

    一. Flink的引入 这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 Hadoop.Storm,以及后来的 Spark,他们都有着各自专注的应用场景.Spark 掀开了内存计算的先河 ...

  2. 【AtCoder】AGC017

    在此处输入标题 标签(空格分隔): 未分类 A - Biscuits dp[i][0/1]表示当前和是偶数还是奇数,直接转移即可 #include <bits/stdc++.h> #def ...

  3. CSS3滚动条美化,CSS3滚动条皮肤

    CSS3 -webkit-scrollbar滚动条皮肤美化实现,利用-webkit-scrollbar,-webkit-scrollbar-track,-webkit-scrollbar-thumb这 ...

  4. P1019 单词接龙 字符串回溯

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合 ...

  5. C#简单画图Draw研究学习

    命名空间:using System.Drawing; Graphics类:有道词典翻译 在C#里是封装一个 GDI+ 绘图图面,此类不能被继承. Pen类:定义用于绘制直线和曲线的对象. 此类不能被继 ...

  6. 在jupyter notebook导入tensorflow出错:No module named tensorflow 解决办法

    1.背景 首先说一下我的环境: os : windows10 anaconda版本:2.7 官网提供了两种方法来安装TensorFlow:pip和anaconda.我使用的是anaconda方法.按照 ...

  7. C++ 冒泡排序、选择排序、快速排序

    #include<stdio.h> #define N 10 void swap(int *p1, int *p2); void BubbleSort(int *a); void Sele ...

  8. Clion 常用快捷键

    clion 快捷键 CTRL+ALT+I  自动缩进 查询快捷键CTRL+N   查找类CTRL+SHIFT+N  查找文件CTRL+SHIFT+ALT+N 查 找类中的方法或变量CIRL+B   找 ...

  9. scanf清除缓存区

    为什么需要清除scanf缓存区呢?看一个例子: int main() { int a,b; scanf("%d",&a); scanf("%d",&am ...

  10. v-on指令监听dom事件

    一.无参 <div id="J_app"> <button v-on:click="eatWhat">吃啥</button> ...