• php验证码+js点击刷新


    注意:

      linux环境的php验证码需要安装gd库,而win环境默认是装上了的

      linux环境安装gd库的命令:

        如果php版本是7.x: sudo apt-get install php-gd

        如果php版本是5.x: sudo apt-get install php5.6-gd

    php的验证码实现:

      

    <?php
    Header("Content-type: image/gif");    
    /*  
    * 初始化  
    */    
    $border = 0; //是否要边框 1要:0不要    
    $how = 4; //验证码位数    
    $w = $how*15; //图片宽度    
    $h = 20; //图片高度    
    $fontsize = 6; //字体大小    
    $alpha = "abcdefghjkmnpqrstuvwxyz"; //验证码内容1:字母    
    $number = "23456789"; //验证码内容2:数字    
    $randcode = ""; //验证码字符串初始化    
    srand((double)microtime()*1000000); //初始化随机数种子    
        
    $im = ImageCreate($w, $h); //创建验证图片    
        
    /*  
    * 绘制基本框架  
    */    
    $bgcolor = ImageColorAllocate($im, 255, 255, 255); //设置背景颜色    
    ImageFill($im, 0, 0, $bgcolor); //填充背景色    
    if($border)    
    {    
        $black = ImageColorAllocate($im, 0, 0, 0); //设置边框颜色    
        ImageRectangle($im, 0, 0, $w-1, $h-1, $black);//绘制边框    
    }    
        
    /*  
    * 逐位产生随机字符  
    */    
    for($i=0; $i<$how; $i++)    
    {       
        $alpha_or_number = mt_rand(0, 1); //字母还是数字    
        $str = $alpha_or_number ? $alpha : $number;    
        $which = mt_rand(0, strlen($str)-1); //取哪个字符    
        $code = substr($str, $which, 1); //取字符    
        $j = !$i ? 4 : $j+15; //绘字符位置    
        $color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字符随即颜色    
        ImageChar($im, $fontsize, $j, 3, $code, $color3); //绘字符    
        $randcode .= $code; //逐位加入验证码字符串    
    }    
        
        
    /*  
    * 添加干扰  
    */    
        
    for($i=0; $i<10; $i++)//绘背景干扰线    
    {       
        $color1 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰线颜色    
        ImageArc($im, mt_rand(-5,$w), mt_rand(-5,$h), mt_rand(20,300), mt_rand(20,200), 55, 44, $color1); //干扰线    
    }      
    /*  
    for($i=0; $i<$how*40; $i++)//绘背景干扰点  
    {     
        $color2 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰点颜色   
        ImageSetPixel($im, mt_rand(0,$w), mt_rand(0,$h), $color2); //干扰点  
    }*/    
        
    //把验证码字符串写入session    
    session_start();    
    $_SESSION['randcode'] = $randcode;   
    
     
    $lifeTime = 1*60;    //设置session生命周期为60秒  
    setcookie(session_name(),session_id(),time()+ $lifeTime,"/");
        
    /*绘图结束*/    
    Imagegif($im);    
    ImageDestroy($im);    
    /*绘图结束*/    
    ?>

    页面调用方法:

      注意:因为浏览器会缓存相同的图片路径所有一般要实现点击刷新的功能需要在图片路径后加上随机参数

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>验证码</title>
        </head>
        <body>
            <img src="code.php" onclick="this.src='code.php?id='+Math.random()"/>
        </body>
    </html>
  • 相关阅读:
    Android音频(7)——项目实战——耳麦插拔
    Android音频(6)——音频系统分析
    Android音频(5)——框架中的概念和涉及的文件
    Android音频(4)——音频驱动实战
    Android音频(3)——ALSA声卡驱动——DAPM
    Android音频(2)——ALSA声卡驱动——ASoC
    Mvc中Session导致action不异步的问题
    RabbitMQ 声明Queue时的参数们的Power
    RabbitMQ 实现RPC
    RabbitMQ Topic exchange
  • 原文地址:https://www.cnblogs.com/makalochen/p/10669548.html
Copyright © 2020-2023  润新知