백엔드 개발 PHP 튜토리얼 PHP를 클릭하여 인증 코드를 새로 고치세요.

PHP를 클릭하여 인증 코드를 새로 고치세요.

Jun 06, 2018 am 10:48 AM

이 글은 클릭하면 새로고침할 수 있는 PHP 인증코드를 주로 소개하고 있으니 관심있는 친구들이 참고하시면 좋을 것 같습니다.

인증 코드 클래스 파일 CreateImg.class.php

<?php 
 
class ValidationCode 
{ 
private $width,$height,$codenum; 
public $checkcode;   //产生的验证码 
private $checkimage;  //验证码图片 
private $disturbColor = ''; //干扰像素 
 
function __construct($width='80',$height='20',$codenum='4') 
{ 
  $this->width=$width; 
  $this->height=$height; 
  $this->codenum=$codenum; 
} 
function outImg() 
{ 
  //输出头 
  $this->outFileHeader(); 
  //产生验证码 
  $this->createCode(); 
 
  //产生图片 
  $this->createImage(); 
  //设置干扰像素 
  $this->setDisturbColor(); 
  //往图片上写验证码 
  $this->writeCheckCodeToImage(); 
  imagepng($this->checkimage); 
  imagedestroy($this->checkimage); 
} 
 
private function outFileHeader() 
{ 
  header ("Content-type: image/png"); 
} 
 
private function createCode() 
{ 
  $this->checkcode = strtoupper(substr(md5(rand()),0,$this->codenum)); 
} 
 
private function createImage() 
{ 
  $this->checkimage = @imagecreate($this->width,$this->height); 
  $back = imagecolorallocate($this->checkimage,255,255,255); 
  $border = imagecolorallocate($this->checkimage,0,0,0);  
  imagefilledrectangle($this->checkimage,0,0,$this->width - 1,$this->height - 1,$back); // 白色底 
  imagerectangle($this->checkimage,0,0,$this->width - 1,$this->height - 1,$border);  // 黑色边框 
} 
 
private function setDisturbColor() 
{ 
  for ($i=0;$i<=200;$i++) 
  { 
  $this->disturbColor = imagecolorallocate($this->checkimage, rand(0,255), rand(0,255), rand(0,255)); 
  imagesetpixel($this->checkimage,rand(2,128),rand(2,38),$this->disturbColor); 
  } 
} 
 
private function writeCheckCodeToImage() 
{ 
  for ($i=0;$i<=$this->codenum;$i++) 
  { 
  $bg_color = imagecolorallocate ($this->checkimage, rand(0,255), rand(0,128), rand(0,255)); 
  $x = floor($this->width/$this->codenum)*$i; 
  $y = rand(0,$this->height-15); 
  imagechar ($this->checkimage, rand(5,8), $x, $y, $this->checkcode[$i], $bg_color); 
  } 
} 
function __destruct() 
{ 
  unset($this->width,$this->height,$this->codenum); 
} 
} 
?>
로그인 후 복사

포함 파일 imgcode.php

<?php 
session_start(); 
require_once('CreateImg.class.php'); 
$image = new ValidationCode('80','20','4');  //图片长度、宽度、字符个数 
$image->outImg(); 
$_SESSION['validationcode'] = $image->checkcode; //存贮验证码到 $_SESSION 中 
?>
로그인 후 복사

Front-end 파일 데모.php

?php 
session_start(); 
$test = $_POST['test']; 
$test = strtoupper(trim($test)); 
$submit = $_POST['submit']; 
if(isset($submit)){ 
if($test==$_SESSION['validationcode']){ 
  echo 'true'; 
} else { 
  echo 'false'; 
} 
} 
?> 
 
<html> 
<head> 
<title>Image</title> 
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 
<script language="javascript"> 
function newgdcode(obj,url) { 
obj.src = url+ '?nowtime=' + new Date().getTime(); 
//后面传递一个随机参数,否则在IE7和火狐下,不刷新图片 
} 
</script> 
<body> 
<img src="imgcode.php" alt="看不清楚,换一张" align="absmiddle" style="cursor: pointer;" onclick="javascript:newgdcode(this,this.src);" /> 
<form method="POST" name="form1" action="image.php"> 
<input type="text" name="test"> 
<br /> 
<input type="submit" name="submit" value="提交"> 
</form> 
</body> 
</head> 
</html>
로그인 후 복사

요약: 위 내용이 이 글의 전체 내용입니다. 모든 사람에게 도움이 될 수 있습니다. 학습에 도움이 됩니다.

관련 권장 사항:

PHP로 단어를 내보내는 방법

PHP jpgraph 설치 및 기본 사용법

PHP 사용자 정의 페이징 클래스의 원리

위 내용은 PHP를 클릭하여 인증 코드를 새로 고치세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) 11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄) Mar 03, 2025 am 10:49 AM

11 최고의 PHP URL 쇼트너 스크립트 (무료 및 프리미엄)

Laravel의 플래시 세션 데이터로 작업합니다 Laravel의 플래시 세션 데이터로 작업합니다 Mar 12, 2025 pm 05:08 PM

Laravel의 플래시 세션 데이터로 작업합니다

6 PHP 개발자가 가져야 할 6 가지 추가 기술 6 PHP 개발자가 가져야 할 6 가지 추가 기술 Feb 28, 2025 am 10:52 AM

6 PHP 개발자가 가져야 할 6 가지 추가 기술

PHP의 배열을 이해하십시오 PHP의 배열을 이해하십시오 Feb 28, 2025 am 10:53 AM

PHP의 배열을 이해하십시오

Laravel Back End : Part 2, React가있는 React 앱 구축 Laravel Back End : Part 2, React가있는 React 앱 구축 Mar 04, 2025 am 09:33 AM

Laravel Back End : Part 2, React가있는 React 앱 구축

Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Mar 12, 2025 pm 05:09 PM

Laravel 테스트에서 단순화 된 HTTP 응답 조롱

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Mar 13, 2025 pm 12:08 PM

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 Mar 14, 2025 am 11:42 AM

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법

See all articles