참고: 일부 기본 코드에 주석을 달았습니다. 여기에 구현된 인증 코드 자릿수와 필수 문자열을 다시 설정할 수 있습니다. 내 주석을 사용하면 모든 사람이 쉽게 이해할 수 있어야 합니다.
기본 아이디어:
1. mt_rand()를 사용하여 무작위로 숫자를 생성하여 얻어야 하는 문자열을 결정하고, 문자열을 이어붙입니다(생성된 인증 코드가 약간 엉성한 것 같습니다) 너무 복잡하면 다시 시도할 수 있습니다. 문자열 중간에 스페이스바를 연결하여 임의의 확인 코드를 구현하세요.
참고: 전자인 rand() 대신 mt_rand()를 사용하는 것이 좋습니다. 더 효율적입니다
2. gd 라이브러리 사용 이미지를 생성하고 이미지 출력에 임의의 문자열을 씁니다.
효과:
새로 고칠 때마다 무작위 검증이 생성됩니다. 나중에 무작위 코드 구현 방법을 추가할 수 있습니다. 클릭 사진이 다시 업데이트됩니다
코드:
<?php // 创建画布 $width = 120; // 规定画布的宽高 $height = 45; $image = imagecreatetruecolor($width, $height); // 创建一幅真彩色图像 // 添加一些即将用到的颜色 $white = imagecolorallocate($image, 0xf2, 0xec, 0xe0); $orange = imagecolorallocate($image, 0xff, 0xa5, 0x4c); // 对画布背景填充颜色 imagefill($image, 0, 0, $white); //mt_rand 获取随机数 mt_rand(min, max); function str_rand(){ $str="abcdefghijkmnpqrstuvwxyz0123456789ABCDEFGHIGKLMNPQRSTUVWXYZ"; $rand=""; for($i=0; $i<5; $i++){//获取5个随机的字符串 $rand .= $str[mt_rand(0, strlen($str)-1)]; //如:随机数为30 则:$str[30] } return $rand; } $verifyCode=str_rand(); // 画一串字符串在画布上 imagestring($image, 10, 10, 10, "$verifyCode", $orange); // 通知浏览器输出的是图像(png类型) header('Content-Type: image/png'); // 输出到浏览器 imagepng($image); // 释放图像资源