首页 > 语言 > PHP > 正文

PHP编写登录验证码功能 附调用方法

2024-05-04 23:46:21
字体:
来源:转载
供稿:网友
这篇文章主要介绍了PHP编写登录验证码功能,文末附调用方法,并包含随机字符函数,和GD库画图函数,感兴趣的小伙伴们可以参考一下
 

本文实例为大家分享了一个PHP写的登录验证码功能,供大家参考,具体内容如下

 ShowKey.php

<?phpsession_start();//设置COOKIE或Sessionfunction esetcookie($name,$str,$life=0){//本函数将字符串 str 全部变小写字符串使验证码输入不区分大小写----在提交表单进行session比较同样需要次函数转化 $_SESSION[$name]=strtolower($str);}//获取随机字符 此函数区分字符大小写 如果不区分大小写可加入函数strtolowerfunction 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程序设计有所帮助。



注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选