>백엔드 개발 >PHP 문제 >PHP에서 인증 코드 기능을 구현하는 방법

PHP에서 인증 코드 기능을 구현하는 방법

(*-*)浩
(*-*)浩원래의
2019-09-29 15:04:354458검색

PHP는 GD 라이브러리를 통해 인증코드 기능을 구현합니다. PHP 인증코드와 관련된 그림을 그리고 출력하는 기술을 예제 형태로 분석합니다. 참조용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

PHP에서 인증 코드 기능을 구현하는 방법

먼저 구현 효과를 살펴보세요. (권장 학습: PHP 비디오 튜토리얼)

PHP에서 인증 코드 기능을 구현하는 방법

구체적인 구현:

<?php
/*PHP实现验证码*/
session_start();//开启会话
//创建画布
$image=imagecreatetruecolor(100,38);
//背景颜色
$bgcolor=imagecolorallocate($image,255,255,255);
imagefill($image,0,0,$bgcolor);
$captch_code=&#39;&#39;;//存储验证码
//随机选取4个数字
for($i=0;$i<4;$i++){
  $fontsize=10;    //
  $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));//随机颜色
  $fontcontent=rand(0,9);
  $captch_code.=$fontcontent;
  $x=($i*100/4)+rand(5,10);  //随机坐标
  $y=rand(5,10);
  imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
}
/*//字母和数字混合验证码
for($i=0;$i<4;$i++) {
  $fontsize = 10;    //
  $fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120));//??????
  $data = &#39;abcdefghijklmnopqrstuvwxyz1234567890&#39;;  //数据字典
  $fontcontent = substr($data, rand(0, strlen($data)), 1);
  $captch_code.=$fontcontent;
  $x = ($i * 100 / 4) + rand(5, 10);
  $y = rand(5, 10);
  imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}*/
$_SESSION[&#39;code&#39;]=$captch_code;
//增加干扰点
for($i=0;$i<200;$i++){
  $pointcolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
  imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);//
}
//增加干扰线
for($i=0;$i<3;$i++){
  $linecolor=imagecolorallocate($image,rand(80,280),rand(80,220),rand(80,220));
  imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
}
//输出格式
header(&#39;content-type:image.png&#39;);
imagepng($image);
//销毁图片
imagedestroy($image);

구현 양식 연결 및 "하나 변경" 기능 구현:

<input type="text" placeholder="验证码" name="verifycode" class="captcha">
<br>
<img  id="captcha_img" src="captcha.php?r=<?php echo rand();? alt="PHP에서 인증 코드 기능을 구현하는 방법" >" alt="验证码">
<label>
<a href="javascript:void(0)" rel="external nofollow" onclick="document.getElementById(&#39;captcha_img&#39;).src=&#39;captcha.php?r=&#39;+Math.random()">换一个</a> 
</label>

captcha.php 뒤에는 확인 코드 변경 기능을 구현하는 임의의 매개변수가 올 수 있습니다. 간단한 js를 통해 구현되었습니다. 해당 기능이 없으면 매개변수를 사용할 수 없습니다.

위 내용은 PHP에서 인증 코드 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.