php验证码--图片

这里我们介绍图片验证码的制作,有关字符验证码可以参考以下文章:

点击打开链接

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

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;

客户端:

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

结果图:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-23 23:29:54

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

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

一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.response.study; 2 import java.awt.Color; 3 import java.awt.Font; 4 import java.awt.Graphics; 5 import java.awt.Graphics2D; 6 import java.awt.image.Buff

输出随机验证码图片

1 /** 2 * //输出随机验证码图片:CAPTCHA图像 3 */ 4 public class ServletDemo1 extends HttpServlet { 5 private static final long serialVersionUID = 1L; 6 7 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOEx

验证码图片

namespace HMOA.Common { public class ValidateCode { public ValidateCode() { } /// <summary> /// 验证码的最大长度 /// </summary> public int MaxLength { get { return 10; } } /// <summary> /// 验证码的最小长度 /// </summary> public int MinLength { ge

用python生成验证码图片

除了配置好的python环境外,还需要配有python中的PIL库,这是python中专门用来处理图片的库.用传统的pip install 方法或者下载源码 python setup.py install 方法安装该库,很可能会报错(视运行环境不同).可以采用以下方法: 1.下载安装包URL:http://www.pythonware.com/products/pil/index.htm,要下载支持全平台的. 2.解压缩: tar –zxv –f Imaging-1.1.7.tar.gz 3.进

Python Show-Me-the-Code 第 0010 题 生成验证码图片

第 0010 题:使用 Python 生成类似于下图中的字母验证码图片 阅读资料 思路:先随机生成验证码,然后用Python的PIL库画出这个激活码的图片,具体点就是创建画布,加验证码的字上去,增加噪点进行干扰,再进行模糊处理,接着保存到名字为验证码的图片中. 0010.生成验证码图片.py #!/usr/bin/env python #coding: utf-8 import Image, ImageDraw, ImageFont, ImageFilter import string, ran

用动态网页技术PHP生成验证码图片的源代码

文件a.php <? //checkNum.php session_start(); function random($len) { $srcstr="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; mt_srand(); $strs=""; for($i=0;$i<$len;$i++){ $strs.=$srcstr[mt_rand(0,35)]; } return strtoupper($strs); } $str=ra

转: 通过Servlet生成验证码图片

孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(九)—— 通过Servlet生成验证码图片 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl.response.study; 2 import java.awt.Color; 3 import java.awt.Font; 4 import java.awt.Graphics; 5

如何实现文本框和验证码图片对齐

如何实现文本框和验证码图片对齐:在默认情况下,如果文本框和图片在同一个元素中的话,不能够实现垂直对齐,比如验证码功能,左边是文本框,右边是验证码图片,如果不加控制它们是不能够对齐的,下面就通过代码实例介绍一下如何实现文本框和图片的对齐效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content=

验证码图片转字符串

为什么? 因为之前一个项目,安卓那边说只能处理JSON,别的都不行...(后来问过他人,明明可以处理其他的~~) 当时因为赶进度,所以直接缓存了图片(囧),然后将图片地址发出去. 过后想了下完全可以转成字符串发送过去. 方法如下: 验证码图片 public BufferedImage getImage() throws IOException{ int width = 60; int height = 32; //create the image BufferedImage image = ne

利用htmlunit登陆带验证码图片的网站

http://htsoft.org/html/y2011/822_using-htmlunit-landing-site-with-captcha-image.html 利用htmlunit登陆带验证码图片的网站 2011年09月15日 ⁄ 编程语言 ⁄ 共 1266字 ⁄ 字号 小 中 大 ⁄ 暂无评论 ⁄ 阅读 7,088 次 以百度统计为例,说明下如何用htmlunit登陆带验证码的网站 //baidu统计登陆代码 try { WebClient client = new WebClien