• php5 图片验证码一例


    php5 图片验证码。

    GD库的函数
    1,imagecreatetruecolor -----创建一个真彩色的图像
    imagecreatetruecolor(int x_size,int y_size) //x表示宽,y表示高
    2,imagecolorallocate 为一幅图像分配颜色(调色板)
    imagecolorallocate(resource image,int red,int green,int blue)//red,green,blue----三原色
    3,imagestring 绘图函数
    iamgestring(resource image,font,int x,int y,内容,颜色);
    4,输出函数
    php的header是定义头的动作,php5中支持3中类型:
    1,Content-type:xxxx/yyyy
    2,Location:xxxx:yyyy/zzzz
    3,Status:nnn xxxxxx
    xxxx/yyyy表示内容文件的类型
    如:image/gif
    image/jpeg
    image/png
    例子:header("Content-type:image/jpeg")
    GD库中有对应的image类型
    imagejpeg(),imagegif(),imagepang()
    5,imageline画线函数
    iamgeline(resource image,int x1,int y1,int x2,int y2,int color);
    image ---图片
    x1 ---启始坐标
    y1
    x2 ---终点坐标
    y2
    6,imagesetpixel画点函数
    imagesetpixel(resource image,int x,int y,int color)
    7,imagettftext带字体的写入函数
    imagettftext(resource image,float size,float angle,int x,int y,int color,string fontfile,string text)
    8,php验证码插入中文的方法
    iconv("gb2312","utf-8","字符串"); //首先要将文字转换成utf-8格式
    9,随机函数
    1,rand([int min,int max]) //rand(1,4) 生成1-4的数
    2, dechex(十进制数) //转换为十六进制
    做验证码的步骤:
    生成随机数 -- 创建图片 -- 随机数写成图片 --保存在session中

    输入验证码例子
    gdchek.php

    <?php
    /*
    * 生成图片验证码
    * and open the template in the editor.
    * edit by www.jbxue.com
    */
    session_start();
    for($i=0;$i<4;$i++){
    $rand.=dechex(rand(1,15)); //生成4位数包含十六进制的随机数
    }
    $_SESSION[check_gd]=$rand;
    $img=imagecreatetruecolor(100,30); //创建图片
    $bg=imagecolorallocate($img,0,0,0); //第一次生成的是背景颜色
    $fc=imagecolorallocate($img,255,255,255); //生成的字体颜色
    //给图片画线
    for($i=0;$i<3;$i++){
    $te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
    imageline($img,rand(0,15),0,100,30,$te);
    }
    //给图片画点
    for($i=0;$i<200;$i++){
    $te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
    imagesetpixel($img,rand()%100,rand()%30,$te);
    }
    //首先要将文字转换成utf-8格式
    //$str=iconv("gb2312","utf-8","呵呵呵");
    //加入中文的验证
    //smkai.ttf是一个字体文件,为了在别人的电脑中也能起到字体作用,把文件放到项目的根目录,可以下载,还有本机C:WINDOWSFonts中有
    imagettftext($img,11,10,20,20,$fc,"simkai.ttf","你好你好");
    //把字符串写在图片中
    //imagestring($img,rand(1,6),rand(3,70),rand(3,16),$rand,$fc);
    //输出图片
    header("Content-type:image/jpeg");
    imagejpeg($img);
    ?>

    login.php

    <?php
    /*
    * 登录验证
    * by www.jbxue.com
    */
    session_start();
    if($_POST[sub]){
    //判断验证码是否相同
    if($_POST[gd_pic]==$_SESSION[check_gd]){
    echo "验证成功!";
    }else{
    echo "验证码错误";
    }
    }
    ?>
    <form action="login.php" method="POST">
    用户名:<input type="text" name="user"/><br>
    密码:<input type="password" name="pwd"/><br>
    验证码:<imput type="text" name="gd_pic"/><img src="gdchek.php"><br>
    <imput type="submit" name="sub" value="submit"/>
    </form>
  • 相关阅读:
    ComparatorUtil 防止空指针异常
    Java resource 读取解释,绝对路径和相对路径
    List -> Map 工具类,list转为map
    Idea debugger 无法启动-unable to open debugger port , java.net.SocketException "socket closed"
    js处理ajax返回的json数组
    ubuntu安装chkconfig.deb系统服务管理工具
    Ubuntu18.04更新源
    IDEA通过Git同步代码到Coding
    解决ERR Client sent AUTH, but no password is set
    PyCharm快捷键
  • 原文地址:https://www.cnblogs.com/study100/p/3224254.html
Copyright © 2020-2023  润新知