PHP编写登录验证码功能 附调用方法
程序员文章站
2024-04-02 12:54:58
本文实例为大家分享了一个php写的登录验证码功能,供大家参考,具体内容如下
showkey.php
本文实例为大家分享了一个php写的登录验证码功能,供大家参考,具体内容如下
showkey.php
<?php session_start(); //设置cookie或session function esetcookie($name,$str,$life=0){ //本函数将字符串 str 全部变小写字符串使验证码输入不区分大小写----在提交表单进行session比较同样需要次函数转化 $_session[$name]=strtolower($str); } //获取随机字符 此函数区分字符大小写 如果不区分大小写可加入函数strtolower function domake_password($len) { $chars = array( /*"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",*/ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ); $charslen = count($chars) - 1; shuffle($chars);// 将数组打乱 $output = ""; for ($i=0; $i<$len; $i++) { $output .= $chars[mt_rand(0, $charslen)]; //获得一个数组元素 } return $output; } //显示验证码 function showkey(){ $key=domake_password(4);//获取随机值 $set=esetcookie("checkkey",$key);//将随机值写入cookie或session //是否支持gd库 if(function_exists("imagejpeg")) { header ("content-type: image/jpeg"); $img=imagecreate(47,20); $blue=imagecolorallocate($img,102,102,102); $white=imagecolorallocate($img,255,255,255); $black=imagecolorallocate($img,71,71,71); imagefill($img,0,0,$blue); imagestring($img,5,6,3,$key,$white); for($i=0;$i<90;$i++) //加入干扰象素 { imagesetpixel($img,rand()%70,rand()%30,$black); } imagejpeg($img); imagedestroy($img); } elseif (function_exists("imagepng")) { header ("content-type: image/png"); $img=imagecreate(47,20); $blue=imagecolorallocate($img,102,102,102); $white=imagecolorallocate($img,255,255,255); $black=imagecolorallocate($img,71,71,71); imagefill($img,0,0,$blue); imagestring($img,5,6,3,$key,$white); for($i=0;$i<90;$i++) //加入干扰象素 { imagesetpixel($img,rand()%70,rand()%30,$black); } imagepng($img); imagedestroy($img); } elseif (function_exists("imagegif")) { header("content-type: image/gif"); $img=imagecreate(47,20); $blue=imagecolorallocate($img,102,102,102); $white=imagecolorallocate($img,255,255,255); $black=imagecolorallocate($img,71,71,71); imagefill($img,0,0,$blue); imagestring($img,5,6,3,$key,$white); for($i=0;$i<90;$i++) //加入干扰象素 { imagesetpixel($img,rand()%70,rand()%30,$black); } imagegif($img); imagedestroy($img); } elseif (function_exists("imagewbmp")) { header ("content-type: image/vnd.wap.wbmp"); $img=imagecreate(47,20); $blue=imagecolorallocate($img,102,102,102); $white=imagecolorallocate($img,255,255,255); $black=imagecolorallocate($img,71,71,71); imagefill($img,0,0,$blue); imagestring($img,5,6,3,$key,$white); for($i=0;$i<90;$i++) //加入干扰象素 { imagesetpixel($img,rand()%70,rand()%30,$black); } imagewbmp($img); imagedestroy($img); } else { //不支持验证码 header("content-type:image/jpeg\r\n"); header("pragma:no-cache\r\n"); header("cache-control:no-cache\r\n"); header("expires:0\r\n"); $fp = fopen("data/vdcode.jpg","r"); } } showkey(); ?>
调用方法:
复制代码 代码如下:
<img src="showkey.php" name="keyimg" id="keyimg" onclick="keyimg.src='showkey.php?'+math.random()">
以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。
上一篇: CI框架简单邮件发送类实例
下一篇: PHP对象链式操作实现原理分析