【PHP】验证码实现

<?php
/*
Describe:生成验证码的代码
Paramters:$count生成验证码的位数
return:生成的验证码


*/
session_start();
function CreatCheckNumber($count=4,$st=1){
$checkNum="";//生成的验证码


$str="";
$str1="0 1 2 3 4 5 6 7 8 9";
$str2="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";
$str3="我 是 验 证 码 分 隔 符 为 空 格";
switch($st){
case 1:$str=$str1;break;
case 2:$str=$str2;break;
case 3:$str=$str3;break;
case 4:$str=$str1.' '.$str2;break;
case 5:$str=$str1.' '.$str3;break;
case 6:$str=$str2.' '.$str3;break;
case 7:$str=$str1.' '.$str2.' '.$str3;break;
}
$arr=explode(" ",$str);
for($i=0;$i<$count;$i++)
$checkNum.=$arr[rand(0,count($arr)-1)];
//处理大小写字母"o"成数字"0".
$checkNum=str_replace("o","0",str_replace("O","0",$checkNum));


echo $checkNum;
 
}
CreatCheckNumber(4,4);
 




?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
验证码可以用 PHP GD 库来生成图像,然后把图像输出到浏览器上。以下是一个简单的 PHP 验证码实现: ```php <?php // 开始会话 session_start(); // 验证码中使用的字符集 $charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; // 创建一个随机字符串 $code = ''; for ($i = 0; $i < 4; $i++) { $code .= $charset[mt_rand(0, strlen($charset) - 1)]; } // 将随机字符串存储到会话中 $_SESSION['code'] = $code; // 创建一个 100x30 像素的图像 $image = imagecreatetruecolor(100, 30); // 设置背景色为白色 $bg_color = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $bg_color); // 生成干扰线 for ($i = 0; $i < 5; $i++) { $line_color = imagecolorallocate($image, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255)); imageline($image, mt_rand(0, 100), mt_rand(0, 30), mt_rand(0, 100), mt_rand(0, 30), $line_color); } // 生成干扰点 for ($i = 0; $i < 50; $i++) { $pixel_color = imagecolorallocate($image, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255)); imagesetpixel($image, mt_rand(0, 100), mt_rand(0, 30), $pixel_color); } // 将随机字符串写入图像 $text_color = imagecolorallocate($image, 0, 0, 0); imagestring($image, 5, 20, 8, $code, $text_color); // 发送图像到浏览器 header('Content-type: image/png'); imagepng($image); // 销毁图像 imagedestroy($image); ?> ``` 在 HTML 表单中使用验证码时,需要将用户输入的验证码和会话中存储的验证码进行比较,以验证用户输入的是否正确。比较的代码如下: ```php <?php // 开始会话 session_start(); if ($_POST['code'] == $_SESSION['code']) { // 验证码输入正确 } else { // 验证码输入错误 } ?> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值