Heim > Backend-Entwicklung > PHP-Tutorial > Methode zum Zeichnen eines Bestätigungscodes für das Homepage-Bild der Website-Anmeldung basierend auf PHP

Methode zum Zeichnen eines Bestätigungscodes für das Homepage-Bild der Website-Anmeldung basierend auf PHP

墨辰丷
Freigeben: 2023-03-29 15:28:01
Original
1523 Leute haben es durchsucht

Fast alle Website-Anmeldeseiten verfügen über einen Bestätigungscode. Der Bestätigungscode ist ein Sicherheitsschutzmechanismus, der verhindert, dass Junk-Registrierungsmaschinen eine große Anzahl von Benutzerkonten registrieren, den Serverspeicher belegen und den Server lahmlegen. Als Nächstes werde ich Ihnen in diesem Artikel den Verifizierungscode für die Anmeldung auf der Website mit PHP vorstellen. Freunde, die ihn benötigen, können sich auf

Fast alle Website-Anmeldeseiten beziehen. Der Verifizierungscode ist ein Bei der Registrierung ist eine manuelle Überprüfung erforderlich, um zu verhindern, dass Junk-Registrierungsmaschinen eine große Anzahl von Benutzerkonten registrieren, die den Serverspeicher belegen und den Server lahmlegen.

Die Implementierung des Bildverifizierungscodes ist sehr einfach. Wählen Sie zunächst zufällig eine feste Anzahl von Zeichen aus dem angegebenen Zeichensatz aus, zeichnen Sie sie unregelmäßig auf die Leinwand, fügen Sie dann entsprechend einige Interferenzpunkte und Interferenzelemente hinzu und geben Sie schließlich das Bild aus. Ein brandneuer Bestätigungscode ist fertig.

Lassen Sie mich Ihnen zuerst den generierten Bestätigungscode zeigen:

Zum Aktualisieren klicken:

Wenn alle mit den Ergebnissen sehr zufrieden sind, lesen Sie bitte weiter.

Der Front-End-Code lautet wie folgt:

<!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>
Nach dem Login kopieren

Der Code des PHP-Skriptdatei-Verifizierungscodes lautet wie folgt:

<?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);
}
?>
Nach dem Login kopieren

Zusammenfassung: Das Obige ist der gesamte Inhalt Ich hoffe, dass dieser Artikel jedem beim Lernen helfen kann.

Verwandte Empfehlungen:

Zusammenfassung der Methoden zum Abrufen von Pfaden und Verzeichnissen mit PHP

phpVerwenden Sie Curl, um Erhalten Sie Remote-Bilder. Implementierungsmethode

Methode zur Verwendung von JSON in der PHP-Sprache und zum Reduzieren von JSON in ein Array

Das obige ist der detaillierte Inhalt vonMethode zum Zeichnen eines Bestätigungscodes für das Homepage-Bild der Website-Anmeldung basierend auf PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage