• php 验证码


    1.

    <!DOCTYPE html>
    <html>
    <head>
    <title>留言页面</title>
    </head>
    <body>
    <form method="post" action="">
    验证码:<input type="text" size="10" name="check">
    <img src="EX5_10_image.php">
    <input type="submit" name="ok" value="提交">
    </form>
    </body>
    </html>
    <?php
    session_start(); //启动session
    if(isset($_POST['ok']))
    {
    $checkstr=$_SESSION['string']; //使用$_SESSION变量获取EX5_10_image.php页面上的验证码
    $str=$_POST['check']; //用户输入的字符串
    if(strcasecmp($str,$checkstr)==0) //不区分大小写进行比较
    echo "<script>alert('验证码输入正确!');</script>";
    else
    echo "<script>alert('输入错误!');</script>";
    }
    ?>

    2.

    <?php
    session_start(); //启动session
    header('Content-type: image/gif'); //输出头信息
    $image_w=100; //验证码图形的宽
    $image_h=25; //验证码图形的高
    $number=range(0,9); //定义一个成员为数字的数组
    $character=range("Z","A"); //定义一个成员为大写字母的数组
    $result=array_merge($number,$character); //合并两个数组
    $string=""; //初始化
    $len=count($result); //新数组的长
    for($i=0;$i<4;$i++)
    {
    $new_number[$i]=$result[rand(0,$len-1)]; //在$result数组中随机取出4个字符
    $string=$string.$new_number[$i]; //生成验证码字符串
    }
    $_SESSION['string']=$string; //使用$_SESSION变量传值
    $check_image=imagecreatetruecolor($image_w,$image_h); //创建图片对象
    $white=imagecolorallocate($check_image, 255, 255, 255);
    $black=imagecolorallocate($check_image, 0, 0, 0);
    imagefill($check_image,0,0,$white); //设置背景颜色为白色
    for($i=0;$i<100;$i++) //加入100个干扰的黑点
    {
    imagesetpixel($check_image, rand(0,$image_w), rand(0,$image_h),$black);
    }
    for($i=0;$i<count($new_number);$i++) //在背景图片中循环输出4位验证码
    {
    $x=mt_rand(1,8)+$image_w*$i/4; //设定字符所在位置X坐标
    $y=mt_rand(1,$image_h/4); //设定字符所在位置Y坐标
    //随机设定字符颜色
    $color=imagecolorallocate($check_image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200));
    //输入字符到图片中
    imagestring($check_image,5,$x,$y,$new_number[$i],$color);
    }
    imagepng($check_image);
    imagedestroy($check_image);
    ?>

    3.

    array_merge()函数可以将一个或多个数组合并,一个数组中的值附加在前一个数组的后面,返回作为结果的数组。语法格式如下:
    array array_merge(array $array1 [, array $array2 [, array $... ]])
    如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前面的一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。例如:
    <?php
    $array1=array("color"=>"red",2,4);
    $array2=array("a","color" => "green",4);
    $result=array_merge($array1, $array2); //合并两个数组
    print_r($result);
    //输出:Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => 4 )
    ?>

  • 相关阅读:
    PS转换图片——我教你
    通过Ajax——异步获取相关问题解答
    Spring的线程安全
    Spring MVC的工作机制
    Annotation的语法和使用
    Spring Bean的生命周期
    浅谈Spring
    Spring的事务管理
    行为型模式
    结构型模式
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/6489956.html
Copyright © 2020-2023  润新知