您的位置:首页 > 企业要闻

switch注册账号(switch注册账号邮箱里面没有验证码)

2024-02-19 04:56热度:162

如果您觉得该文章对您有帮助,让更多人受用,请关注“键盘码农”,转发该文章。

该案例共分为4个文件:code.php(验证码随机生成方法)、register.html(验证码测试界面)、register.php(验证码判断)、verify.php(验证码)。

随机验证码生成案例(原生)

code.php(验证码随机生成方法)

<?php

/**

* 随机生成验证码

*$width : 宽度

*$height: 高度

*$type: 要产生的验证码的类型

0表示纯数字, 1表示纯字符, 2表示数字字符混合 3表示计算

*$num: 验证码的个数

至少是两个

*/

// code();

function code($width = 100, $height = 50, $type = 1, $num = 4)

{

//创建画布

$image = imagecreatetruecolor($width, $height);

//给画布创建颜色

//给画布上画矩形

imagefilledrectangle($image, 0, 0, $width, $height,light_color($image));

//生成验证码

switch ($type) {

case 0:

$code = rand_number($num);

break;

case 1:

$code = rand_char($num);

break;

case 2:

$code = rand_num_char($num);

break;

case 3:

$code = rand_computer();

break;

}

//将验证码画到画布上

$w = ceil($width / $num);

for ($i = 0; $i < $num; $i++) {

$x = mt_rand($i * $w, ($i + 1) * $w - 10);

$y = mt_rand(0 + 5, $height - 15);

//一次只能画一个字符

imagechar($image, 5, $x, $y, $code<$i>, dark_color($image));

}

//给验证码上加干扰元素 点 弧度

for ($i = 0; $i < 100; $i++) {

imagesetpixel($image, mt_rand(0, $width), mt_rand(0, $height), dark_color($image));

}

for ($i = 0; $i < 10; $i++) {

imagearc($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, 90), mt_rand(0, 180), dark_color($image));

}

//告知浏览器要显示的文件类型

header('Content-type: image/png');

//显示到浏览器

imagepng($image);

//关闭资源

imagedestroy($image);

//返回验证码

return $code;

}

/**

* 生成浅色系

*/

function light_color($image)

{

return imagecolorallocate($image, mt_rand(130, 255), mt_rand(130, 255), mt_rand(130, 255));

}

/**

* 生成深色系

*/

function dark_color($image)

{

return imagecolorallocate($image, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));

}

function rand_number($num)

{

//方式一:

// $str = '0123456789';

// $str = str_shuffle($str);

// return substr($str, 0, $num);

//方式二:

// $arr = range(0, 9);

// shuffle($arr);

// $str = join('', $arr);

// return substr($str, 0, $num);

//方式三

$arr = range(0, 9);

shuffle($arr);

$arr = array_slice($arr, 0, $num);

return join('', $arr);

}

/**

* 生成纯字符的验证码

*/

function rand_char($num)

{

//方式一

// $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

// $str = str_shuffle($str);

// return substr($str, 0, $num);

//方式二:

// $a = range('a', 'z');

// $b = range('A', 'Z');

// $arr = array_merge($a, $b);

// shuffle($arr);

// $arr = array_slice($arr, 0, $num);

// return join('', $arr);

//方式三

$a = range('a', 'z');

$b = range('A', 'Z');

$arr = array_merge($a, $b);

//键值对调

$arr = array_flip($arr);

$arr = array_rand($arr, $num);

return implode('', $arr);

}

/**

* 产生数字字母混合验证码

*/

function rand_num_char($num)

{

//方式一

// $a = range(0, 9);

// $b = range('a', 'z');

// $c = range('A', 'Z');

// $arr = array_merge($a, $b, $c);

// shuffle($arr);

// $arr = array_slice($arr, 0, $num);

// return join('', $arr);

//方式二:

$str = '';

for ($i = 0; $i < $num; $i++) {

//产生一个0-2的随机数, 0表示0-9, 1表示a-z 2表示A-Z

$rand = mt_rand(0, 2);

switch ($rand) {

case 0:

$str .= chr(mt_rand(48, 57));

break;

case 1:

$str .= chr(mt_rand(97, 122));

break;

case 2:

$str .= chr(mt_rand(65, 90));

break;

}

}

return $str;

}

function rand_computer()

{

$arr = <'+', '-', '*'>;

$a = mt_rand(1, 9);

$b = mt_rand(1, 9);

$rand = mt_rand(0, 2);

return $a .$arr<$rand>. $b. '=';

}

php验证码生成

register.html(验证码测试界面)

<!DOCTYPE html>

<html>

<head>

<title>验证码</title>

<meta charset="utf-8">

</head>

<body>

<form action="register.php" method="post">

<input type="text" name="code">

<img src="verify.php">

<input type="submit" name="dosubmit" value="提交">

</form>

</body>

</html>

php验证码生成测试

register.php(验证码判断)

<?php

session_start();

$code = $_POST<'code'>;

if (strcasecmp($code, $_SESSION<'code'>)) {

exit('验证码输入错误,请让人操作');

} else {

exit('输入正确');

}

verify.php(要调用的验证码)

<?php

include 'code.php';

session_start();

$_SESSION<'code'> = code(75, 20, 2, 4);

多看多测试,包括验证码生成的多种方法都已一一举例,希望对您有所帮助,如有疑问不懂的地方欢迎提问,谢谢!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

猜你喜欢