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

2025-05-29 0 81

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

ShowKey.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110
<?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程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP编写登录验证码功能 附调用方法 https://www.kuaiidc.com/97505.html

相关文章

发表评论
暂无评论