PHP cliquez pour actualiser le code de vérification

墨辰丷
Libérer: 2023-03-29 22:56:01
original
2774 Les gens l'ont consulté

Cet article présente principalement le code de vérification PHP qui peut être actualisé en cliquant dessus. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Fichier de classe de code de vérification CreateImg.class.php

<?php 
 
class ValidationCode 
{ 
private $width,$height,$codenum; 
public $checkcode;   //产生的验证码 
private $checkimage;  //验证码图片 
private $disturbColor = &#39;&#39;; //干扰像素 
 
function __construct($width=&#39;80&#39;,$height=&#39;20&#39;,$codenum=&#39;4&#39;) 
{ 
  $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); 
} 
} 
?>
Copier après la connexion

Contient le fichier imgcode.php

<?php 
session_start(); 
require_once(&#39;CreateImg.class.php&#39;); 
$image = new ValidationCode(&#39;80&#39;,&#39;20&#39;,&#39;4&#39;);  //图片长度、宽度、字符个数 
$image->outImg(); 
$_SESSION[&#39;validationcode&#39;] = $image->checkcode; //存贮验证码到 $_SESSION 中 
?>
Copier après la connexion

Front-end fichier démo .php

?php 
session_start(); 
$test = $_POST[&#39;test&#39;]; 
$test = strtoupper(trim($test)); 
$submit = $_POST[&#39;submit&#39;]; 
if(isset($submit)){ 
if($test==$_SESSION[&#39;validationcode&#39;]){ 
  echo &#39;true&#39;; 
} else { 
  echo &#39;false&#39;; 
} 
} 
?> 
 
<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+ &#39;?nowtime=&#39; + 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>
Copier après la connexion

Résumé : ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Comment exporter Word avec PHP

Installation de PHP jpgraph et utilisation de base

Principe de la classe de pagination personnalisée PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!