zoukankan      html  css  js  c++  java
  • php画图应用之验证码

    在画图里面,就像之前所说的。php的画图是真正动态画图,尽管自己承认会出的图是非常不好看的。但我们主要关注的应该还是数据处理。

    验证码我们差点儿无处不见,它的产生和画图技术是密不可分的。事实上,简单的验证码绘制出来是非常easy的,就像以下的一段代码就能够绘制出包括字母和数字的元素:

    <?php
    	$checkCode="";
    	for($i=0; $i<=3;$i++){
    		$checkCode.=dechex(rand(1,15));
    	}
    	session_start();
    	$_SESSION['checkCode']=$checkCode;
    	//建立画布
    	$img_1=imagecreatetruecolor(110, 30);
    	$red=imagecolorallocate($img_1, 255, 0, 0);
    	imagestring($img_1, 5, 0, 0, $checkCode, $red);
    	header("Content-type: image/png");
    	imagepng($img_1);
    	imagedestroy($img_1);
    ?

    >


    上面的代码仅仅是简单的说了一下验证码的绘制。事实上代码方面并没有进行安全处理。

    以下是相对的把验证码处理的相对复杂了一些:

    <?php
    	$checkCode="";
    	for($i=0; $i<=3;$i++){
    		$checkCode.=dechex(rand(1,15));
    	}
    	session_start();
    	$_SESSION['checkCode']=$checkCode;
    	//建立画布
    	$img_1=imagecreatetruecolor(70, 40);
    	//必须是先创建画布。在创建颜色。
    	$red=imagecolorallocate($img_1, rand(0,255), rand(0,255), rand(0,255));
    
    	for($k=0; $k<=20; $k++){
    		imageline($img_1, rand(0,50),rand(0,30),0,0,0,0, imagecolorallocate($img_1, rand(0,255), rand(0,255), rand(0,255)));
    	}
    	imagestring($img_1, rand(3,7), rand(0,40), rand(0,20), $checkCode, $red);
    	header("Content-type: image/png");
    	imagepng($img_1);
    	imagedestroy($img_1);
    ?>


  • 相关阅读:
    习题解答chapter09
    习题解答chapter08
    习题解答chapter07
    银行账户实验-1.2
    银行账户实验-1.1
    银行账户实验-1.0
    习题解答chapter06
    习题解答chapter05
    习题解答chapter04
    习题解答chapter03
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6767518.html
Copyright © 2011-2022 走看看