PHP验证码生成与验证例子

1 一个简单的验证码实例

1.1 显示验证码的图片

 代码如下 复制代码

    <?php
    $num=intval(mt_rand(1000,9999));
    for($i=0 ; $i<4 ;$i++)
    {echo "<img src=img/yzm/".substr(strval($num),$i,1).".gif/>";}
    ?>

1.2 验证过程

 代码如下 复制代码

    if (strval($inputyzm)!=strval($num))
    {
    echo "<script>alert('验证码错误!');history.go(-1);</script>";
    exit;
    }

2 一个汉字的验证码实例

2.1 显示验证码的图片

   

 代码如下 复制代码
<?php
    $str="汉","字","验","证","码"); //可以定义汉字的内容和个数
    $word=strlen($str));
    for ($i=0;$i<4;$i++)
    {
    $num=rand(0,$word);
    $img = $img."<img src='../images/yzm/".$num".gif'/>";
    $pic = $pic.$str[$num];
    }
    >

2.2 将生成的随机字符串赋给一个隐藏域

   

 代码如下 复制代码
<input type="hidden" name="yzm" value="<?php echo $pic; ?/>">

2.3 定义一个check()函数

 代码如下 复制代码

    <script language="javascript">
    function check(form)
    {
    if(form.yzm.value==""){
    alert("请输入验证码");
    form.yzm.focus();
    return false;
    }
    if(form.yzm.vale!=form.yz.value)
    {alert("验证码错误");
    form.yzm.focus();
    return false;
    }
    }
    </script>

看一个完整的实例

php 验证码生成与调用的例子,平时开发中经常使用,记录一下。

1、验证码生成文件code.php

 代码如下 复制代码

    <?
    Header("Content-type:image/png");
    //定义header,声明图片文件,最好是png,无版权之扰;
    //生成新的四位整数验证码
    session_start();//开启session;
    authnum_session = '';
    str = 'abcdefghijkmnpqrstuvwxyz1234567890';
    //定义用来显示在图片上的数字和字母;
    l = strlen(str); //得到字串的长度;
    //循环随机抽取四位前面定义的字母和数字;
    for(i=1;i<=4;i++)
    {
    num=rand(0,l-1);
    //每次随机抽取一位数字;从第一个字到该字串最大长度,
    //减1是因为截取字符是从0开始起算;这样34字符任意都有可能排在其中;
    authnum_session.= str[num];
    //将通过数字得来的字符连起来一共是四位;
    }
    session_register("authnum_session");
    //用session来做验证也不错;注册session,名称为authnum_session,
    //其它页面只要包含了该图片
    //即可以通过_SESSION["authnum_session"]来调用

    //生成验证码图片,
    srand((double)microtime()*1000000);
    im = imagecreate(50,20);//图片宽与高;
    //主要用到黑白灰三种色;
    black = ImageColorAllocate(im, 0,0,0);
    white = ImageColorAllocate(im, 255,255,255);
    gray = ImageColorAllocate(im, 200,200,200);
    //将四位整数验证码绘入图片
    imagefill(im,68,30,gray);
    //如不用干扰线,注释就行了;
    li = ImageColorAllocate(im, 220,220,220);
    for(i=0;i<3;i++)
    {//加入3条干扰线;也可以不要;视情况而定,因为可能影响用户输入;
    imageline(im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),li);
    }
    //字符在图片的位置;
    imagestring(im, 5, 8, 2, authnum_session, white);
    for(i=0;i<90;i++)
    {//加入干扰象素
    imagesetpixel(im, rand()%70 , rand()%30 , gray);
    }
    ImagePNG(im);
    ImageDestroy(im);
    ?>

以上代码,参考了如下的文章:
php图片验证码
php生成验证码的例子
用php生成带有雪花背景的验证码

2、调用验证码的页面 sessionValidate.php

 代码如下 复制代码

    <?php
    session_start();
    //在页首先要开启session,
    //error_reporting(2047);
    session_destroy();
    //将session去掉,以每次都能取新的session值;
    //用seesion 效果不错,也很方便
    ?>
    <html>
    <head>
    <title>session 图片验证实例</title>
    </head>
    <body>
    此例为session验证实例
    <form action="" method="post">
    验证码:<input type="text" name="validate" value="" size=10> <img src="checkNum_session.php"><br>
    <input type="submit">
    </form>
    <?php
    //打印上一个session;
    echo "上一个session:<b>"._SESSION["authnum_session"]."</b><br>";
    validate="";
    if(isset(_POST["validate"])){
    validate=_POST["validate"];
    echo "您刚才输入的是:"._POST["validate"]."<br>状态:";
    if(validate!=_SESSION["authnum_session"]){
    //判断session值与用户输入的验证码是否一致;
    echo "<font color=red>输入有误</font>";
    }else{
    echo "<font color=green>通过验证</font>";
    }
    }
    /*
    //打印全部session;
    PrintArr(_SESSION);
    function PrintArr(aArray){
    echo '<xmp>';
    print_r(aArray);
    echo '</xmp>';
    }
    */
    ?>

时间: 2024-08-23 01:15:11

PHP验证码生成与验证例子的相关文章

PHP 用session与gd库实现简单验证码生成与验证的类方法_php实例

验证码是为了防止机器灌水给网站带来污染以及增加服务器负担而出现的.目前大大小小的网站都有验证码.今天自己实现了一个简单的验证码类.说简单是因为没有加一些干扰的弧线等等,只是将文字旋转了一下.当然,因为字体的原因,要想一眼看出来并不容易.同时,为了避免字母的大小写与数字混淆,又去掉了那些看起来很像的字母数字. 类: <?php /** *简单生成验证码类 */ class Captcha { private $width;//验证码宽度 private $height;//验证码高度 privat

PHP 用session与gd库实现简单验证码生成与验证的类方法

验证码是为了防止机器灌水给网站带来污染以及增加服务器负担而出现的.目前大大小小的网站都有验证码.今天自己实现了一个简单的验证码类.说简单是因为没有加一些干扰的弧线等等,只是将文字旋转了一下.当然,因为字体的原因,要想一眼看出来并不容易.同时,为了避免字母的大小写与数字混淆,又去掉了那些看起来很像的字母数字. 类: <?php /** *简单生成验证码类 */ class Captcha { private $width;//验证码宽度 private $height;//验证码高度 privat

PHP图形验证码生成代码与包括Ajax验证实例应用

php教程图形验证码生成代码与包括ajax验证实例应用 以前写的验证码程序都是提供了源代码,但是没真的实的图形验证码生成到验证实例,这次我们一个完整的php 验证实例产生了. 有3个文件: authcode.php-----验证码的生成php文件 authcode.html-----前台显示页面 dealauthcode.php-----ajax提交到的后台处理判断验证码是否正确的处理页面 */ ?> 前台调用验证码代码 <!doctype html public "-//w3c//

JavaScript生成验证码并实现验证功能_javascript技巧

废话不多说了,直接给大家贴代码了,具体代码如下所示: <html> <head> <title>验证码</title> <style type="text/css"> #code { font-family:Arial; font-style:italic; font-weight:bold; border:0; letter-spacing:2px; color:blue; } </style> <scri

基于Ajax用户名验证、服务条款加载、验证码生成的实现方法_java

 Ajax(asynchronous javascript and xml)异步的javascript和xml.     是为了解决传统的web应用中"发送请求-等待响应"这种模式的弊端,(浏览器在发送完请求后,只能等待服务器的响应,用户不能做其他的操作,浏览器发送完请求,会抛弃整个页面,等待服务器返回新的页面,也就是说,浏览器和服务器之间交互的数据量很大,不能做到按需获取数据)而创建的技术,该技术的本质是:通过一个浏览器内置的一个对象(XmlHttpRequest)异步地向服务器发送

php验证码生成代码_php技巧

验证码通常是用来安全保证我们网站注册或登录不被注入的,但为了更安全我们通常会生成一些混合验证码了,下面一起来看看例子. 在我们开发登录模块或者是论坛的灌水模块的时候,为了防止恶意提交,需要用到验证码,验证码就是用来区分人和机器的一种手段,当然这种手段不是万无一失,但总归会起到一些作用. 验证码的实现需要GD库的支持,没有开启GD库的童鞋需开启GD库,其实验证码的制作和使用非常的简单,仅仅只是需要4个步骤就可以搞定:创建验证码底图,显示验证码内容,增加干扰元素,输出验证码,下面我们来进行步骤拆分:

jsp验证码生成以及刷新

关于jsp验证码生成,显示,验证和刷新: 1:四位数据的验证图片生成,用servlet实现 2:在web.xmlli配置servlet 3:页面上显示servlet生成的图片 4:关于验证码输入数据的验证 5:验证码的刷新 ----------------------– 1:四位数据的验证图片生成,用servlet实现,servlet代码如下:import java.io.*;import javax.servlet.http.*;import javax.servlet.*;import ja

java验证码生成具体代码_java

本文实例为大家分享了java验证码生成的示例代码,供大家参考,具体内容如下 package com.gonvan.component.captcha; import java.awt.*; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Random; import javax.imag

PHP验证码之Ajax验证实现方法

验证码生成程序我这里就不介绍了,大家可参考http://www.111cn.net/phper/phpanqn/46698.htm 下面介绍一个简单的  代码如下 复制代码 <?php  session_start(); //设置: 你可以在这里修改验证码图片的参数 $image_width = 120; $image_height = 40; $characters_on_image = 6; $font = './monofont.ttf';    //以下字符将用于验证码中的字符  //为