Méthode d'élaboration du code de vérification pour l'image de la page d'accueil de connexion au site Web basée sur PHP

墨辰丷
Libérer: 2023-03-29 15:28:01
original
1456 Les gens l'ont consulté

Presque toutes les pages de connexion du site Web auront un code de vérification. Le code de vérification est un mécanisme de protection de sécurité utilisé pour empêcher les machines d'enregistrement indésirables d'enregistrer un grand nombre de comptes d'utilisateurs pour occuper la mémoire du serveur et paralyser le serveur. Ensuite, à travers cet article, je vais vous présenter le code de vérification de l'image de la page d'accueil de connexion au site Web de dessin PHP. Les amis qui en ont besoin peuvent se référer à

Presque toutes les pages de connexion du site Web auront un code de vérification. mécanisme de protection de sécurité. Lors de l'enregistrement, une vérification manuelle est requise pour empêcher les machines d'enregistrement indésirables d'enregistrer un grand nombre de comptes d'utilisateurs pour occuper la mémoire du serveur et paralyser le serveur.

La mise en œuvre du code de vérification d'image est très simple. Tout d'abord, sélectionnez au hasard un nombre fixe de caractères dans le jeu de caractères spécifié, dessinez-les sur la toile de manière irrégulière, puis ajoutez des points d'interférence et des éléments d'interférence de manière appropriée, et enfin sortez l'image, et un tout nouveau code de vérification est complété.

Laissez-moi d'abord vous montrer le code de vérification généré :

Cliquez pour actualiser :

Si tout le monde est très satisfait des résultats, continuez à lire.

Le code frontal est le suivant :

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>This is a test!</title>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
</head>
<body>
<form name="form">
<input type="text" placeholder="账号"/><br/>
<input type="password" placeholder="密码"/><br/>
<input type="text" placeholder="验证码"/>
<img id="verImg" src="libs/verification.php"/>
<a href="#" class="change" onclick="changeVer()">点击刷新</a><br/>
<input type="submit" value="登录"/>
</form>
<script type="text/javascript">
//刷新验证码
function changeVer(){
document.getElementById("verImg").src="libs/verification.php?tmp="+Math.random();
}
</script>
</body>
</html>
Copier après la connexion

Le code du code de vérification du fichier de script php est le suivant :

<?php
session_start();
//开启session记录验证码数据
vCode(4, 15);//设置验证码的字符个数和图片基础宽度
//vCode 字符数目,字体大小,图片宽度、高度
function vCode($num = 4, $size = 20, $width = 0, $height = 0) {
!$width && $width = $num * $size * 4 / 5 + 15;
!$height && $height = $size + 10;
//设置验证码字符集合
$str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW";
//保存获取的验证码
$code = &#39;&#39;;
//随机选取字符
for ($i = 0; $i < $num; $i++) {
$code .= $str[mt_rand(0, strlen($str)-1)];
}
//创建验证码画布
$im = imagecreatetruecolor($width, $height);
//背景色
$back_color = imagecolorallocate($im, mt_rand(0,100),mt_rand(0,100), mt_rand(0,100));
//文本色
$text_color = imagecolorallocate($im, mt_rand(100, 255), mt_rand(100, 255), mt_rand(100, 255));
imagefilledrectangle($im, 0, 0, $width, $height, $back_color);
// 画干扰线
for($i = 0;$i < 5;$i++) {
$font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagearc($im, mt_rand(- $width, $width), mt_rand(- $height, $height), mt_rand(30, $width * 2), mt_rand(20, $height * 2), mt_rand(0, 360), mt_rand(0, 360), $font_color);
}
// 画干扰点
for($i = 0;$i < 50;$i++) {
$font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $font_color);
}
//随机旋转角度数组
$array=array(5,4,3,2,1,0,-1,-2,-3,-4,-5);
// 输出验证码
// imagefttext(image, size, angle, x, y, color, fontfile, text)
@imagefttext($im, $size , array_rand($array), 12, $size + 6, $text_color, &#39;c:\WINDOWS\Fonts\simsun.ttc&#39;, $code);
$_SESSION["VerifyCode"]=$code;
//no-cache在每次请求时都会访问服务器
//max-age在请求1s后再次请求会再次访问服务器,must-revalidate则第一发送请求会访问服务器,之后不会再访问服务器
// header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
header("Cache-Control: no-cache");
header("Content-type: image/png;charset=gb2312");
//将图片转化为png格式
imagepng($im);
imagedestroy($im);
}
?>
Copier après la connexion

Résumé : Ce qui précède C'est tout le contenu de cet article, j'espère qu'il pourra être utile à l'étude de chacun.

Recommandations associées :

Résumé des méthodes d'obtention de chemins et de répertoires avec PHP

phpUtilisez curl pour obtenir des images distantes Méthode d'implémentation

Méthode d'utilisation de JSON en langage PHP et de réduction de json en tableau

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!

Étiquettes associées:
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!