• 简单的php做的一个验证码生成方案


    //运行前,你的电脑需要可以运行php的环境,下面,是我的一些做法

    //这个是一个运行时的页面

    //show.html  ---名字

    --------------------------------

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <img id="code" src="valcode.php"/>  //一个img标签,用来显示验证码的
    <span id="change_code" style="cursor:pointer" >看不清</span>  //这是个“看不清”点击键

    //极为简单的js代码,如果用jquery将更加简单

    <script type="text/javascript"> 
    showval();//开始运行时,先执行一次验证码输出

    document.getElementById('change_code').onclick=showval;  //点击事件调用


    function showval(){  //点击事件
         var numstr="";
        for(i=0;i<4;i++){
            num=Math.round(Math.random()*10);   //随机的4位数
            numstr+=num;
        }
        document.getElementById('code').src='valcode.php?num='+numstr;  //导入到img的src中
    }
    </script>

    </body>

    </html>

     -----------------------------------------------------------------
    //以上的讲解相当简单吧。那么下面就是php的主要代码了。和我上一章随笔是一样的,只不过变了一点点。下面就是全部代码
    //代码的解释和前章随机是一样的,所以没有详细说到,只是部分解释了一下。


    //valcode.php   //这是名字

     -------------------------------------------------------------

    <?php

    header("Content-type:image/png");  //头输出。
    $width=80;
    $height=42;
    $numimage=imagecreate($width, $height);
    imagecolorallocate($numimage, 240, 240, 240);


    $num=$_GET['num'];   //--------------就是这里了,获得show.html   中最后一行的src ,其中还有个num,用get方法获得就行。

    for($i=0;$i<strlen($num);$i++)
    {
        $x=mt_rand(0, 10)+$width*$i/4;
        $y=mt_rand(2, $height/3);
        $color=imagecolorallocate($numimage, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0,255));
        imagestring($numimage, 5, $x, $y, $num{$i}, $color);
    }


    $color = imagecolorallocate($numimage, 100, 60, 155);
    for($i=0;$i<200;$i++){
        imagesetpixel($numimage, mt_rand(0, 80), mt_rand(0, 42), $color);
    }
    imagepng($numimage);
    imagedestroy($numimage);

    ?>

    ----------------------------------------------------------

     现在你可以试试看了。

  • 相关阅读:
    java设计模式之单例模式
    走台阶问题的递归方法与非递归方法
    QueenAttack
    为什么要建立数据仓库?
    通过复制现有的redhat虚拟机的文件,实现在VMWare8.0上重建一个新的redhat虚拟机环境
    hive配置以及在启动过程中出现的问题
    java_ee_sdk-7u2的安装与 启动
    Hadoop集群配置过程中需要注意的问题
    VMware8.0虚拟机中安装Ubuntu12.04使用NAT设置连接网络
    在VMware8.0.4安装centos6.3出现蓝屏,显示“anaconda: Fatal IO error 104 (Connection reset by peer) on X server :1.0. install exited abnormally [1/1]”?
  • 原文地址:https://www.cnblogs.com/wanlxz/p/2627823.html
Copyright © 2020-2023  润新知