php 图片验证码

1.原理

数组中每个图片对应一个值->随机值->获取并保存到$_SESSION中,->获取随机值对应的图片,->通过__FILE__输出图片,->浏览器验证

2.代码

captcha.php

<?php
session_start();
//图片对应
$picArray = array(
    ‘pic00‘=>‘狗‘,
    ‘pic01‘=>‘猫‘,
    ‘pic02‘=>‘鱼‘,
    ‘pic03‘=>‘鸟‘
);
//随机取值
$index = mt_rand(0,3);
$value = $picArray[‘pic0‘.$index];
$_SESSION[‘authcode‘] = $value;

$filename = dirname(__FILE__).‘./img/pic0‘.$index.‘.jpg‘;
//echo $filename;
$content = file_get_contents($filename);
header(‘Content-type: image/jpg‘);
echo $content;

form.php

<?php
if (isset($_REQUEST[‘authcode‘])) {
    session_start();
    //判断
    if (strtolower($_REQUEST[‘authcode‘] == strtolower($_SESSION[‘authcode‘]))) {
        echo ‘恭喜你输入正确!‘;
    } else {
        echo ‘输入失败!‘;
    }
    exit();
}
?>
<html>
<head>
    <title>验证码提交</title>
</head>
<body>
<form action="form.php" method="post">
    <p>验证码:<img src="captcha.php?r=<?php echo mt_rand() ?>" id="captcha_img" alt="验证码" width="200" height="200" border="1px"></p>
    <a href="javascript:void(0)" onclick="document.getElementById(‘captcha_img‘).src=‘./captcha.php?r=‘+Math.random()">看不清?</a>
    <p>
        <label for="authcode">请输入图片中的内容: </label>
        <input type="text" name="authcode" id="authcode"/>
    </p>

    <p><input type="submit" value="submit"/></p>
</form>
</body>
</html>
时间: 2024-12-11 18:32:45

php 图片验证码的相关文章

水印、图片验证码

(貌似这个验证码不能获取,假设设置一个隐藏的label来记录又失去了他的意义) 一.水印 1.画布 System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent); 2.创建绘制对象,告诉它往哪张图片上绘制 Graphics g = Graphics.FromImage(img); 3.绘制的内容 string s = "www.itnba.com"; 4.绘制的字体 Font f

水印,图片验证码

加水印: 1.画布 2.笔.颜色.从那开始画.画的内容 获取新的路径 保存新的图片 设置新图片为背景 图片验证码: 例如画一个abcd 100*5o大小.黑体30像素.红色的 为了防止被抓去,跳转到另一个页面执行,需要把照片用流输出回去 完整验证码 验证:

图片验证码

1.首先创建一个web窗体,只使用后台部分,生成验证码,并输出图片流跟图片验证码的字符,在使用验证码的窗体中图片控件直接指向这个窗体 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Drawing; public partial class Y

java web中图片验证码功能实现

用户在注册网站信息的时候基本上都要数据验证码验证.那么图片验证码功能该如何实现呢? 大概步骤是: 1.在内存中创建缓存图片 2.设置背景色 3.画边框 4.写字母 5.绘制干扰信息 6.图片输出 废话不多说,直接上代码 package com.lsgjzhuwei.servlet.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffer

基于spring mvc的图片验证码实现

基于spring mvc的图片验证码实现 标签: springmvcspring mvc验证码验证码验证 2016-01-28 10:49 8015人阅读 评论(4) 收藏 举报  分类: 表单处理 版权声明:本文为博主原创文章,未经博主允许不得转载. 本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) public void getAuthCode(HttpServ

【Nodejs项目手记】Nodejs中使用图片验证码,captchapng模块可以解决Nodejs图片验证码

Nodejs项目,在做图片验证码的时候遇到了难题.Nodejs没有图片库,以后会有,但是现在没有. 网络上搜索一圈,有几个解决方案: 1.采用第三方验证码程序,有的时候,项目可能不允许: 2.使用Java或者PHP生成图片,Nodejs调用,中间采用Redies共享: 这两种方式都不太理想,好在终于找到了可以支持Nodejs图片验证码的一个库,虽然只支持数字,但是也还不错.原理是使用Base64的图片编码方式. 这个库的Gighub地址是:https://github.com/GeorgeCha

【问题】做图片验证码时乱码了,在header前加上ob_clean()就能神奇的显示?!

源代码如下: 1 <?php 2 //图片验证码 3 // 该方法必须处于脚本最顶部 4 session_start(); 5 // 验证码图片和对应的验证值的对应关系 6 $table = array( 7 'pic0' => '博美', 8 'pic1' => '仓鼠', 9 'pic2' => '萨摩', 10 'pic3' => '泰迪', 11 ); 12 13 $index = rand(0,3); 14 15 $value = $table['pic'.$ind

WebSite---前台系统图片验证码心得

背景: 因为移动端APP和Msite手机注册发送短信验证码没有添加图片验证码功能.公司的短信接口被恶意刷取.所以我们就觉得在移动端添加一个图片验证码功能.分享一下大体实现方式思路.PS demo是自己写的.跟公司代码还是有很大差距的.    一. 图片验证码第一版       1. 建立图片验证码 ValidationCodeHelper 1.1 填写方法生成对应的.验证码: 默认是4位数字 1 private static char[] _constant = { 2 '0','1','2',

工作笔记5.JAVA图片验证码

本文主要内容为:利用JAVA图片制作验证码. 设计思路: 1.拷贝AuthImageServlet.class图片验证码 2.配置web.xml 3.JSP中,调用封装好的AuthImageServlet,实现载入验证码的功能. 4.取出存放在Session中的验证码.在Action中推断验证码的正确性 相比較上一篇博客<工作笔记5.JAVA文本框验证码>而言,图片验证码添加了安全性. 在Action中,通过取出Session中的验证码与输入的验证码是否匹配进行推断. 步骤: 1.拷贝Auth

JS+ASP.NET 图片验证码

图片验证码控件 <img id="imgYZM" src="CheckCode.aspx" onmouseup="RefreshCheckImage()" alt="点击重新获取" /> 点击再次获取验证码 function RefreshCheckImage() { var el = document.getElementById("imgYZM"); el.src = el.src + '?