Cet article présente principalement la méthode de création de code de vérification PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Les codes de vérification sont de plus en plus implémentés dans les formulaires, mais les codes de vérification écrits en js semblent toujours gênants, j'ai donc appris les codes de vérification implémentés en php. Eh bien, en fait, je n'avais rien à faire, mais je ne voulais pas perdre de temps, alors j'ai appris à implémenter des codes de vérification en PHP. Comme le dit le proverbe, avoir trop de compétences ne vous alourdit pas. De plus, il peut également être encapsulé dans une fonction, ce qui est très pratique pour une utilisation future. Bien sûr, il n'est pas encapsulé pour le moment.
Tout d'abord, voici un rendu :
1 Générer une image png
2.
3. Définissez la couleur et le style de la police
4. Générez un code de vérification aléatoire à 4 chiffres
5. Ajustez l'angle de rotation et la position de chaque caractère généré et dessinez-le sur l'image png
6. Ajoutez du bruit et des lignes d'interférence pour empêcher la machine d'enregistrement d'analyser l'image originale pour un enregistrement malveillant
7. Sortez l'image
8. Libérez la mémoire occupée par l'image
authcode.php fichier
Code
<?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); ?>
Résumé : Ce qui précède est l'intégralité du contenu de cet article, J'espère que cela pourra aider tout le monde à apprendre Helps.
Recommandations associées :
Comment implémenter une probabilité simple en PHP
Méthodes et exemples simples de contrôle de boucle while en php
Comment implémenter des opérations inter-domaines en 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!