-
-
/**기본 홈페이지 **/ - class DefaultController는 AppController를 확장합니다
- {
- 공용 함수 인덱스() {
- $len = 5;
- $str = "ABCDEFGHIJKLNMPQRSTUVWXYZ123456789";
$im = imagecreatetruecolor(70, 20); $bgc = imagecolorallocate($im, 255, 255, 255);
- $bgtxt = imagecolorallocate($im, 220, 220, 220);
//임의 색상 조정 보드
- $colors = array(
- imagecolorallocate($im, 255, 0, 0),
- imagecolorallocate($im, 0, 200, 0),
- imagecolorallocate($im, 0, 0 , 255),
- imagecolorallocate($im, 0, 0, 0),
- imagecolorallocate($im, 255, 128, 0),
- imagecolorallocate($im, 255, 208, 0),
- imagecolorallocate($im, 98, 186, 245),
- );
//배경색 채우기
- imagefill($im, 0, 0, $ bgc );
//임의의 숫자 가져오기
- $verify = ""
- while (strlen($verify) < $len) {
- $i = strlen($verify);
- $random = $str[rand(0, strlen($str))]
- $verify .= $random;
/ /배경 텍스트 그리기
- imagestring($im, 6, ($i*10) 3, rand(0,6), $random, $bgtxt)
- //메인 텍스트 정보 그리기
- imagestring ( $im, 6, ($i*10) 3, rand(0,6), $random, $colors[rand(0, count($colors)-1)])
- }
//무작위 노이즈 추가
- for($i=0; $i<100; $i ) {
- $color = imagecolorallocate($im, rand(50,220), rand( 50,220), rand(50,220))
- imagesetpixel($im, rand(0,70), rand(0,20), $color)
- }
- sess("verify", $verify);
//이미지 출력 및 캐시 해제
- 헤더(' 콘텐츠 유형: 이미지/png');
- imagepng($im)
- imagedestroy($im)
- }
- ?
-
-
-
코드 복사
예제 2, 임의의 문자열과 인증 코드를 생성하는 클래스의 PHP 인스턴스
임의의 문자열과 인증 코드를 생성하는 클래스입니다.
다음 코드의 구현은 주로 하나의 get_code()와 다른 하나의 create_check_image()를 구별하기 위한 것입니다. 출력 이미지는 후자를 직접 호출합니다. session()이 확인 코드를 가져오면 get_code()를 직접 호출합니다.
session을 사용할 때에는 session_star()를 먼저 배치해야 합니다.
전체 코드:
-
-
- class RandCheckCode
- {
- /*함수 이름: get_code()
- *함수: 임의의 문자열 가져오기
- * 매개변수:
- 1. (int)$length = 32 # 임의의 문자 길이
- 2. (int)$mode = 0 # 임의의 문자 유형,
- 0은 대문자와 소문자 및 숫자, 1은 숫자, 2는 소문자, 3은 대문자,
- 4는 대문자와 소문자, 5는 대문자와 숫자, 6은 소문자와 숫자
- * Return : 얻은 문자열
- */
- function get_code($length=32,$mode=0)//무작위 인증코드 받기 function
- {
- 스위치($mode)
- {
- 사례 '1':
- $str='123456789';
- 중단;
- 사례 '2':
- $str='abcdefghijklmnopqrstuvwxyz';
- 중단;
- 사례 ' 3 ':
- $str='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- 중단;
- 사례 '4':
- $str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
- 중단;
- 사례 '5':
- $str='ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
- 중단;
- 케이스 '6':
- $str='abcdefghijklmnopqrstuvwxyz1234567890';
- 중단;
- 기본값:
- $str='ABC DEFG HIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 ';
- 중단;
- }
- $checkstr='';
- $len=strlen($str)-1;
- for ($i=0;$i<$length; $i )
- {
- //$num=rand(0,$len);//0과 $len 사이의 난수 생성
- $num=mt_rand(0,$len) // 0과 $len
- $checkstr.=$str[$num];
- }
- return $checkstr;
/**함수명 : create_check_image()
- 함수 : 검사코드 이미지 생성
- 매개변수 : $checkcode : 검사코드 문자열
- 반환값 : 이미지 반환
- */
- 함수 create_check_image($checkcode)//
- {
- $im=imagecreate(65 ,22); 생성 //이미지 생성
- $black=imagecolorallocate($im,0,0,0);//배경색
- $white=imagecolorallocate($im,255,255,255);//전경색
- $gray =imagecolorallocate($im,200,200,200);
- imagefill($im,30,30,$gray);//$im 이미지의 좌표 30,30에서 (이미지의 왼쪽 상단은 0,0입니다) ) $gray 색상으로 영역 채우기를 수행합니다(즉, 30 및 30 포인트와 동일한 색상으로 포인트가 채워지고 인접한 포인트가 채워집니다)
imagestring($im,5,8, 3,$checkcode ,$white);//$white 색상을 사용하여 $im이 나타내는 이미지의 8,3 좌표에 $checkcode 문자열을 그립니다(이것은 문자열의 왼쪽 위 모서리의 좌표이고 전체 이미지의 왼쪽 상단 모서리는 0,0) ,5는 글꼴 크기이며 글꼴은 1, 2, 3, 4 또는 5만 가능합니다. ($i=0;에는 내장 글꼴
- 을 사용하세요. $i<120;$i )
- {
- $randcolor =imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
- imagesetpixel($im,rand() p,rand()0,$randcolor);//$im 이미지에서 $randcolor 색상을 사용하여 이미지의 (rand()p, rand()0) 좌표(이미지의 왼쪽 상단 모서리)에 점을 그립니다. 0,0)
- }
- header("Content-type:image/png" );
- imagepng($im);//이미지를 브라우저에 출력하거나 PNG 형식의 파일로 출력
- imagedestroy($im);//이미지 삭제 $im
- }
- }
- /*
- $randcode=new RandCheckCode();
- $checkstring=$randcode->get_code( 5,7);
- $image=$randcode->create_check_image($checkstring);
- echo $image;
- */
- ?>
-
-
코드 복사
|