码迷,mamicode.com
首页 > Web开发 > 详细

PHP实现验证码

时间:2018-03-19 00:33:05      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:进制   res   需要   mime   释放内存   ola   text   有趣的   颜色   

(1)常见的验证码哪些?
   图像类型、语音类型、视频类型、短信类型等

 

(2)使用验证码的好处在哪里?

①防止恶意的破解密码
如一些黑客为了获取到用户信息,通过不同的手段向服务器发送数据,验证猜测用户信息的准确性。
②防止恶意的刷票,论坛灌水
这种在论坛中长期存在灌水的现象,比如贴吧,不断发送帖子。现在百度贴吧已经针对用户发帖的时间做了一个时间的限制,当一定时间内发帖过多是无法继续发帖的。
③防止恶意的请求
如用户提交一个表单信息,通过不断向后台请求数据信息造成服务器资源的浪费,以及恶意的攻击。
④趣味性
这一点属于个人观点,当我们提交表单的时候,如遇到一些有趣的验证码方式,能够增强用户对网站的喜爱程度。
⑤获取用户信息
这一点在现目前的站点中是屡见不鲜的事情了。如我们注册一个站点的账号,需要通过手机验证码才可以注册成功。网站在拿到用户的电话号码之后会给手机号主发送一些营销信息。

 

(3)环境配置

只需要本地安装了PHP的GD扩展库即可使用。如何查看呢,创建一个PHP文件在该文件中写入<?php phpinfo();?>,访问该文件,如果查看到了GD库已经安装了,则可以使用。

没有的,自行安装,百度很多教程。

 

【四】图像处理函数

(1)获取图像信息

①getimagesize():获取图像尺寸,类型等信息

    获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息

<?php
$array = getimagesize("images/flower_1.jpg");
print_r($array);
?>

 浏览器显示:

Array
(
    [0] => 350   //图像宽度的像素值
    [1] => 318   //图像高度的像素值
    [2] => 2     //图像的类型,返回的是数字
//1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),
//9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
[3] => width="350" height="318" //宽度和高度的字符串,可以直接用于 HTML 的 <image> 标签 [bits] => 8 //图像的每种颜色的位数,二进制格式 [channels] => 3 //图像的通道值,RGB 图像默认是 3 [mime] => image/jpeg //图像的 MIME 信息,此信息用来在 HTTP Content-type 头信息中发送正确的信息,如:header("Content-type: image/jpeg"); )

②imagesx():获取图像宽度

     获取图像的宽度,单位为像素,返回值为整型

③imagesy():获取图像高度

    用于获取图像的高度,语法及用法同 imagesx() 

imagesx()和imagesy()参数为如 imagecreatetruecolor()、imagecreatefromjpeg() 等函数返回的图像资源

<?php
    $img = imagecreatefromjpeg(‘./upload/01.jpg‘);
    // echo "$img";输出Resource id #3
    echo "图像宽度:",imagesx( $img ),"<br />";
    echo "图像高度:",imagesy( $img );
?>

 

(2)创建图像

①imagecreate():创建一幅空白图像

如果我们要对图像进行处理,就如其它图像处理软件一样,需要创建一块画布。imagecreate() 和 imagecreatetruecolor() 函数用于创建一幅空白图像。

参数 x ,y 分别为要创建图像的宽度和高度像素值,返回一个图像资源

<?php
    header("Content-type: image/png");
    //创建图像
    $im = imagecreate(200, 50) or die("创建图像资源失败");
    //图片背景颜色
    $bg = imagecolorallocate($im, 255, 255, 255);
    //文字颜色
    $text_color = imagecolorallocate($im, 0, 0, 255);
    //水平画一行字,要输出中文等需要 TTF 字体支持的请使用 magettftext() 函数
    imagestring($im, 5, 0, 0, "Hello world!", $text_color);
    //以PNG格式输出图像
    imagepng($im);
    //销毁图像资源
    imagedestroy($im);
?>

该例子以图像格式输出一行文字:Hello world! 。例子中用到的其他函数,将在后面逐一介绍。

②imagecreatetruecolor():创建一幅真彩色空白图像

功能与 imagecreate() 类似,创建一幅真彩色的图像,从而支持更为丰富的色彩。

语法:resource imagecreatetruecolor( int x, int y )

注意:本函数不能用于 GIF 文件格式。

 

(3)销毁图像

imagedestroy()

图像处理完成后,使用 imagedestroy() 指令销毁图像资源以释放内存,虽然该函数不是必须的,但使用它是一个好习惯。

语法:bool imagedestroy( resource image ),具体使用可见上面创建图像例子。

 

PHP实现验证码

标签:进制   res   需要   mime   释放内存   ola   text   有趣的   颜色   

原文地址:https://www.cnblogs.com/jianxian/p/8598139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!