精华内容
下载资源
问答
  • PHP实现验证码自动识别,测试已通过,此为测试案例!此为测试案例!
  • PHP实现验证码

    2016-01-20 10:52:20
    通过使用PHP自带的GD库实现验证码,可以生成数字或者字母,并且可以通过session实现验证
  • php实现验证码的识别(中级篇)

    热门讨论 2009-03-08 23:10:13
    这是我写的php实现验证码的识别(URL:http://download.csdn.net/source/1063621)的继续,这个版本的识别码,只要稍加训练就可以实现上个版本的功能,这个php实现验证码中级篇,增加二值化去杂点的操作,解决两个字符...
  • php实现验证码的识别

    2018-02-09 11:28:28
    php实现验证码的识别,另外:此代码切勿用于非法用处,违者引起的一切后果自负。
  • php学习----php实现验证码(一)

    万次阅读 多人点赞 2018-07-31 09:29:41
    一、简单介绍验证码 1.验证码为全自动区分计算机和人类的图灵测试的缩写。...3.实现步骤: (1)生成底图; 依赖php图片处理库GD,http://php.net/manual/zh/book.image.php (2)生成验证内容; ...

    一、简单介绍验证码

    1.验证码为全自动区分计算机和人类的图灵测试的缩写。是一种区分用户是计算机和人的公共全自动程序。

    2.验证码主要应用场景:登录、注册确定前,发布、回复信息前,疑似机器请求时,做人/机器校验。

    3.实现步骤:

    (1)生成底图;

           依赖php图片处理库GD,http://php.net/manual/zh/book.image.php

    (2)生成验证内容;

             产生随机数,使用php函数rand();

    (3)生成验证码图片;

    (4)校验验证内容

              需要php操作SESSION基础,将验证内容保存在服务器端;前端Ajax基础

    4.开发前的准备:

    (1)php运行环境(我用的是Laragon);

    在www目录下新建一个文件夹test,新建一个test.php文件

    <?php
      
      echo "hello,world!!";

    启动Laragon,查看页面:

    (2)检查PHP是否支持GD,通过在php文件中使用函数 phpinfo()输出查看即可。

    在test1.php中写入函数

    <?php
        phpinfo();

    刷新页面,在出现的也页面,搜索gd,查看是否支持,若不支持,请自行百度寻找方法:


    二、php实现验证码---数字验证码

    1.新建一个captcha.php文件,写入下列代码。实现验证码图片:

    <?php
    
    //必须至于顶部,多服务器端记录验证码信息,便于用户输入后做校验
         session_start();
    
        //默认返回的是黑色的照片
        $image = imagecreatetruecolor(100, 30);
        //将背景设置为白色的
        $bgcolor = imagecolorallocate($image, 255, 255, 255);
        //将白色铺满地图
        imagefill($image, 0, 0, $bgcolor);
    
        //空字符串,每循环一次,追加到字符串后面  
        $captch_code='';
     
       //验证码为随机四个数字
        for ($i=0; $i < 4; $i++) { 
        	$fontsize=6;
        	$fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
        	
            //产生随机数字0-9
        	$fontcontent = rand(0,9);
        	$captch_code.= $fontcontent;
           //数字的位置,0,0是左上角。不能重合显示不完全
        	$x=($i*100/4)+rand(5,10);
        	$y=rand(5,10);
         	imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
        }
          
    
      
       $_SESSION['authcode'] = $captch_code;
    //为验证码增加干扰元素,控制好颜色,
    //点   
        for ($i=0; $i < 200; $i++) { 
        	$pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
        	imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);
        }
    
    //为验证码增加干扰元素
    //线   
        for ($i=0; $i < 3; $i++) { 
        	$linecolor = imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
        	imageline($image, rand(1,99), rand(1,29),rand(1,99), rand(1,29) ,$linecolor);
        }
    
        header('content-type:image/png');
    	imagepng($image);
    
        //销毁
        imagedestroy($image);

    查看效果如下:刷新一次,内容或会变化一次

    2.新建一个form.php文件,写入下列代码。实现校验:

    <?php
    
    	if (isset($_REQUEST['authcode'])) {
    		session_start();
    
    		if (strtolower($_REQUEST['authcode'])==$_SESSION['authcode']) {
    			echo'<font color ="#0000CC"> 输出正确</font>';
    			# code...
    		}else{
    			echo $_REQUEST['authcode'];
    			echo $_SESSION['authcode'];
    			echo'<font color ="#CC0000"> 输出错误</font>';
    		}
    
    		exit();
    
    	}
    ?>
    
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title>确认验证码</title>
    	</head>
    	<body>
    		<form method="" ="post" action="./form.php">
    			<p>验证码图片:
    				<img  id="captcha_img" border="1" src="./captcha.php?r=<?php echo rand(); ?>" alt="" width="100" height="30">
    				
    				<a href="javascript:void(0)" onclick="document.getElementById('captcha_img').src='./captcha.php?r='+Math.random() ">换一个?</a>
    			</p>
    
    			<p>请输入图片中的内容:
    				<input type="text" name="authcode" value="" />
    			</p>
    
    			<p>
    				<input type="submit" value="提交" style="padding: 6px 20px;">
    			</p>
    
    		</form>
    	</body>
    
    </html>

    实现结果如下,点击换一个,会换一个验证码。

    输入图片中内容,如果正确,提示输入正确,如果错误,提示输入错误。样式自行修改。

    三、php实现验证码---数字字母验证码

    1.生成验证码图片,只需将产生随机数字的代码换成产生随机数字字母的代码,其他代码与二中保持一致

    //验证码为随机四个字符,数字和字母
       for ($i=0; $i <4 ; $i++) { 
       	$fontsize=6;
       	$fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
       	//子典。因为o和0,l和1冲突,所以我们字典中不包括易混淆的
        $data='abcdefghijkmnpqrstuvwxy3456789';
        $fontcontent = substr($data,rand(0,strlen($data)) ,1);
    	$captch_code.= $fontcontent;
    
    	$x=($i*100/4)+rand(5,10);
    	$y=rand(5,10);
    
        imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
       }

    效果如下:


    代码中涉及的函数,读者可自行去网站 http://php.net/manual/zh/book.image.php中查看详情。

    学习php验证码参考视频:https://www.imooc.com/learn/115

    展开全文
  • PHP实现验证码的代码

    2021-04-12 17:28:21
    本文主要和大家分享PHP实现验证码的代码,除了js可以实现验证码功能,php也可以,希望能帮助到大家。

    本文主要和大家分享PHP实现验证码的代码,除了js可以实现验证码功能,php也可以,希望能帮助到大家。<?php

    header("content-type: image/png"); //这是一个图片格式

    $imgwidth = 100; //宽度

    $imgheight = 40; //高度

    $font = 'NFLBRONC.TTF'; //字体

    $img = imagecreatetruecolor($imgwidth,$imgheight); //创建一个真彩的图像

    // 产生颜色

    function color(){

    global $img; // 声明全局变量

    return imagecolorallocate($img,rand(0,200),rand(0,200),rand(0,200)); // 输出一个颜色

    }

    $white = imagecolorallocate($img, 255, 255, 255);

    imagefill($img,0,0,$white); // 填充颜色

    //生成随机验证码

    $code = '';

    for($i=0;$i<4;$i++){

    if(rand(0,1000)%2==0){

    $code=chr(rand(97,122));

    }else{

    $code=rand(0,9);

    }

    $x = $i*20+10;

    $y = 30;

    imageline($img,rand(0,20),rand(10,20),rand(20,120),rand(20,30),color());

    imagettftext($img, 20,0,$x,$y, color(),$font, $code);

    }

    加入噪点干扰

    for($i=0;$i<100;$i++) {

    imagesetpixel($img,rand(0, 100),rand(0, 100),color());

    imagesetpixel($img,rand(0, 100),rand(0, 100),color());

    }

    //输出验证码

    imagepng($img);

    //关闭

    imagedestroy($img);

    ?>

    相关推荐:

    展开全文
  • PHP实现验证码功能

    2021-03-30 08:05:30
    作者:hutuworm 来源:糊涂馋寺目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。...我们这里展示了如何编写PHP程序实现验证码功能:代码一:/** Filename: ...

    作者:hutuworm 来源:糊涂馋寺

    目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了

    验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,

    图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输

    入表单提交网站验证,验证成功后才能使用某项功能。

    我们这里展示了如何编写PHP程序实现验证码功能:

    代码一:

    /*

    *   Filename:    authpage.php

    *   Author:   hutuworm

    *   Date:   2003-04-28

    *   @Copyleft    hutuworm.org

    */

    srand((double)microtime()*1000000);

    //验证用户输入是否和验证码一致

    if(isset($HTTP_POST_VARS['authinput']))

    {

    if(strcmp($HTTP_POST_VARS['authnum'],$HTTP_POST_VARS['authinput'])==0)

    echo "验证成功!";

    else

    echo "验证失败!";

    }

    //生成新的四位整数验证码

    while(($authnum=rand()%10000)<1000);

    ?>

    请输入验证码:

    >

                    authimg.php?authnum=<?>

    代码二:

    /*

    *   Filename:    authimg.php

    *   Author:   hutuworm

    *   Date:   2003-04-28

    *   @Copyleft    hutuworm.org

    */

    //生成验证码图片

    Header("Content-type: image/PNG");

    srand((double)microtime()*1000000);

    $im = imagecreate(58,28);

    $black = ImageColorAllocate($im, 0,0,0);

    $white = ImageColorAllocate($im, 255,255,255);

    $gray = ImageColorAllocate($im, 200,200,200);

    imagefill($im,68,30,$gray);

    //将四位整数验证码绘入图片

    imagestring($im, 5, 10, 8, $HTTP_GET_VARS['authnum'], $black);

    for($i=0;$i<50;$i++)   //加入干扰象素

    {

    imagesetpixel($im, rand()%70 , rand()%30 , $black);

    }

    ImagePNG($im);

    ImageDestroy($im);

    ?>

    本文程序在Apache 2.0.45 + PHP 4.3.1环境下运行通过。

    上文只是对验证码功能的一个简单实现,并没有考虑商用安全性问题。如果要增强安全性,将此功能投入商业应用,则可以通过以下几个步骤实现:

    1. 启用Session。

    2. authnum在authimg.php中生成,并计算md5sum,存入session。

    3. authpage.php将authinput计算md5sum后,与session中的authnum(md5sum)对比得出验证结果。

    本站注:作者使用了简单的代码实现了很酷的功能。不过在添加干扰像素时的效果不是太好,大家可以看一下雨声论坛登录时的效验码(http://ror.cn/perl/ut/user_login.cgi),偶把第二段代码稍改了一下,生成了与其类似的效果。

    修改后的代码如下:

    /*

    *   Filename: authimg.php

    *   Author:   hutuworm

    *   Date:     2003-04-28

    *   @Copyleft hutuworm.org

    */

    //生成验证码图片

    Header("Content-type: image/PNG");

    srand((double)microtime()*1000000);

    $im = imagecreate(62,20);

    $black = ImageColorAllocate($im, 0,0,0);

    $white = ImageColorAllocate($im, 255,255,255);

    $gray = ImageColorAllocate($im, 200,200,200);

    imagefill($im,68,30,$gray);

    while(($authnum=rand()%100000)<10000);

    //将四位整数验证码绘入图片

    imagestring($im, 5, 10, 3, $authnum, $black);

    for($i=0;$i<200;$i++)   //加入干扰象素

    {

    $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));

    imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);

    }

    ImagePNG($im);

    ImageDestroy($im);

    ?>

    展开全文
  • 1.创建底图,实现四个随机数字在图上输出 2.将数字的颜色设为随机 因为0-120颜色较深,在浅色底图上好识别   3.增加点线干扰元素 方法 :imagesrtpixel  方法 :imageline 注意两者的参数是有...

    创建PHP环境,检查GD库

    <?php

        phpinfo();

    ?>

    一、数字验证码

    1.创建底图,实现四个随机数字在图上输出

    2.将数字的颜色设为随机

    因为0-120颜色较深,在浅色底图上好识别

     

    3.增加点线干扰元素

    方法 :imagesrtpixel 

    方法 :imageline

    注意两者的参数是有些许区别的

     

    二、数字字母混合验证码

    1.

    其余地方不变

     

    三、通过session保存验证码信息

    方法:bool session_start(void)

    注意:session_start() 必须处于脚本最顶端;多服务情况需要考虑集中管理session信息。

    (这里多服务器情况是指:当用户的验证码请求落在多台服务器之一上,我们的session会保存数据在此台服务器上,但是当做验证请求的时候,会落到另外一个服务器上,但这台服务器是没有我们保存的数据的,那么我们的验证码就会校验失败。所以我们需要考虑集中式管理,需要用到memcache,这个知识点先放在这。)

     

    四、创建表单将验证码提交校验

    先创建一个提交表单

    注意:首先代码要打的完全正确结果才能够不出错,个别字母错误都能导致结果无法显示。

    此外大小写处理,全转为小写

     

     

    展开全文
  • 验证码的好处验证码在网站中起着重要的作用,验证码另一个重要作用是确保网站安全利益更大化,预防不法分子利用软件进行恶意非法注册,...PHP实现验证码时主要用到imagecreatetruecolor(),imagecolorallocate(),imagef...
  • Php实现验证码功能

    千次阅读 2014-09-23 16:23:03
    验证码这样的功能可以说是无处不在了,接下来使用php实现验证码这样的功能,这里我是将验证码实现抽取到一个类中独立开来,那么后面如果再使用到验证码功能,直接引入该类文件并创建该类的实例,就可以使用验证码...
  • PHP实现验证码功能 (转)[@more@]用实现验证码功能by hutuwo??目前,不少网站为了防止利用机器人自动注册、登录、灌水,都采用了验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里...
  • php实现带有验证码的模拟登录,使用php强大的采集类snoopy,代码中所用的此类与来源snoopy类经过修改有所不同
  • 这个版本的识别码http://download.csdn.net/source/1084418的修正版,只要稍加训练就可以实现上个版本的功能,这个php实现验证码中级篇,增加二值化去杂点的操作,解决两个字符粘连问题,可以识别旋转字符,并且具有...
  • 这篇文章主要为大家详细介绍了PHP实现验证码校验功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下验证码的校验是利用PHP中的 SESSION功能来实现。在最顶端声明函数 session_start(); 告诉服务器我们要用这个...
  • php 实现验证码的破解

    千次阅读 2015-01-10 13:36:21
    1. 将验证码图片的内容二值化,即将里面字符或明显的线条所占据的像素点设置为1,背景设置为0,大致区分出空白和字符 2. 去噪,去掉干扰的点,主要是把孤立在0里面的1去掉,作者居然是用for循环只判断上下左右四个点...
  • php实现验证码的识别(初级篇)

    千次下载 热门讨论 2009-03-03 15:35:30
    近期研究一些突破验证码方面的知识,记录下来。一方面算是对这几天学习知识的总结帮助自己理解;另一方面希望对研究这方面的技术同学有所帮助;另外也希望引起网站管理者的注意,在提供验证码时多些考虑进去。由于...
  • 本文主要介绍了基于php实现验证码小程序的具体实现方法,并做了详细注释,有利于理解与学习,需要的朋友一起来看下吧验证码功能(个人理解):减轻服务器的压力(如12306的验证码功能);防止暴力注册个人思路:在a-z,A...
  • PHP实现验证码-PHP源码

    2021-04-21 00:42:17
    《script》数字验证码/** Filename: authpage.php*/session_start();//srand((double)microtime()*1000000);$authnum=$_SESSION[''authnum''];//验证用户输入是否和验证码一致if(isset($_POST[''authinput''])){if...
  • php登录验证码怎么实现?1.我们先创建一个html页面显示验证码登陆 2.创建一个PHP文件,接受前端页面传入的验证码信息
  • php验证码实现代码

    2021-04-09 09:38:06
    > 数字+字母验证码(各字母颜色不同): $str="QWERTYUIOPASDFGHJKLZXCVBNM1234567890"; $image=imagecreate(50,25); imagecolorallocate($image,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125)); $color[0] = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,547
精华内容 7,418
关键字:

php实现验证码