1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

不需要GD库的情况下实现验证码 zt CSDN

本帖由 小叶2005-09-18 发布。版面名称:新人报道

  1. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    PHP:
    <?php
    //+-------------------------------------------------
    //| * 文件  validate_image.php
    //| * 功能  实现网站登陆验证码
    //| * 版本  1.0.0
    //| * 日期  2005-4-1
    //| * 作者  西北狼 QQ 500784 cokeyang at hotmail.com
    //| * 版权  [url]http://www.adibaby.com[/url][暂时关闭]
    //| * 使用方法:
    //| 预先在支持GD库的做好一些图片,推荐使用GIF格式,文件名与图片里
    //| 面的里面的数字一致,将图片放入一个文件夹。设置CONFIG里面的数据.
    //| 引用 <IMG SRC="{ filepath }/validate_image.php">
    //| 验证页面对比
    //| $_COOKIE['validate'] == md5($_POST['input'])
    //|==================CONFIG START===================
    $image_path="numimage";// 图片文件路径 后面没有'/'
    $image_ext ="gif";// 图片文件扩展名
    //===================CONFIG END=====================
    $imagelist = array();
    if (
    $handle =opendir($image_path)) { 
    while (
    false !== ($file =readdir($handle))) { 
    $filename =explode(".",$file);
    $imagelist[] = $filename[0];
    unset(
    $filename);
    }
    closedir($handle);
    unset(
    $imagelist[0]);
    unset(
    $imagelist[1]);
    }
    srand((float)microtime()*103E//| 引用 <IMG SRC="{ filepath }/validate_image.php">
    //| 验证页面对比
    //| $_COOKIE['validate'] == md5($_POST['input'])
    //|==================CONFIG START===================
    $image_path="numimage";// 图片文件路径 后面没有'/'
    $image_ext ="gif";// 图片文件扩展名
    //===================CONFIG END=====================
    $imagelist = array();
    if (
    $handle =opendir($image_path)) { 
    while (
    false !== ($file =readdir($handle))) { 
    $filename =explode(".",$file);
    $imagelist[] = $filename[0];
    unset(
    $filename);
    }
    closedir($handle);
    unset(
    $imagelist[0]);
    unset(
    $imagelist[1]);
    }
    srand((float)microtime()*10000000);
    $filename=$imagelist[array_rand($imagelist)];
    setcookie("validate",md5($filename));
    header('Content-type: application/'.$image_ext);
    echo 
    implode('',file($image_path."/".$filename.".".$image_ext));
    ?>
     
  2. 小人物大英雄

    小人物大英雄 New Member

    注册:
    2005-09-19
    帖子:
    5
    赞:
    0
    这样的话,如果不放很多个验证图片的话,随机的图片数太少很容易被破解,木意义了
     
  3. Tameway

    Tameway New Member

    注册:
    2005-09-06
    帖子:
    1,286
    赞:
    8
    也是可以的,验证码只防菜鸟,客户端验证没有意义,服务器端验证算法不好容易被欺骗
     
  4. Tameway

    Tameway New Member

    注册:
    2005-09-06
    帖子:
    1,286
    赞:
    8
    最简单的莫过于JS验证了
     
  5. CcChen

    CcChen New Member

    注册:
    2005-09-20
    帖子:
    2
    赞:
    0
    你强,不过你们都忘记了验证密的作用了。。。那最简单不如不设啊
     
  6. wm_chief

    wm_chief New Member

    注册:
    2005-09-05
    帖子:
    17,890
    赞:
    46