이 글은 주로 PHP 인증 코드의 기본 원칙을 소개합니다. 관심 있는 친구들이 참고하시면 도움이 될 것입니다.
1. 제작 아이디어
기계의 악성 등록을 방지하기 위해 등록 코드가 자주 사용되므로 여기서는 png 이미지 확인 코드를 생성하기 위한 기본 이미지를 게시하겠습니다.
1. png 그림
2. 그림의 배경색을 설정하세요
3. 글꼴 색상과 스타일을 설정하세요
4. 생성된 각 문자의 회전 각도와 위치를 조정하세요. png 사진
6. 등록 기계가 원본 이미지를 분석하여 악성 등록을 방지하도록 노이즈 및 간섭선 추가
7. 이미지 출력
8. 이미지가 차지한 메모리 해제
authcode.php 파일 <?php
session_start ();
header ( 'Content-type: image/png' );
//创建图片
$im = imagecreate($x=130,$y=45 );
$bg = imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155)); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色
$fontColor = imageColorAllocate ( $im, 255, 255, 255 ); //字体颜色
$fontstyle = 'rock.ttf'; //字体样式,这个可以从c:\windows\Fonts\文件夹下找到,我把它放到和authcode.php文件同一个目录,这里可以替换其他的字体样式
//产生随机字符
for($i = 0; $i < 4; $i ++) {
$randAsciiNumArray = array (rand(48,57),rand(65,90));
$randAsciiNum = $randAsciiNumArray [rand ( 0, 1 )];
$randStr = chr ( $randAsciiNum );
imagettftext($im,30,rand(0,20)-rand(0,25),5+$i*30,rand(30,35),$fontColor,$fontstyle,$randStr);
$authcode .= $randStr;
}
$_SESSION['authcode'] = $randFourStr;//用户和用户输入的验证码做比较
//干扰线
for ($i=0;$i<8;$i++){
$lineColor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imageline ($im,rand(0,$x),0,rand(0,$x),$y,$lineColor);
}
//干扰点
for ($i=0;$i<250;$i++){
imagesetpixel($im,rand(0,$x),rand(0,$y),$fontColor);
}
imagepng($im);
imagedestroy($im);
?>
요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되길 바랍니다.
관련 권장 사항:
숫자 금액을 중국 자본 금액으로 변환하는 PHP 함수위 내용은 PHP 인증 코드의 기본 원칙의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!