php登录调用验证码,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

{

$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();

?>

调用方法:ShowKey.php

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

更多PHP编写登录验证码功能 附调用方法相关文章请关注PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值