Cara melaksanakan log masuk kod pengesahan dalam PHP: 1. Buat halaman HTML untuk memaparkan kod pengesahan 2. Buat fail PHP dan terima maklumat kod pengesahan yang dihantar dari halaman hadapan; Cipta kod pengesahan untuk menjana fail PHP.

Persekitaran pengendalian artikel ini: sistem Windows 10, PHP 7, komputer thinkpad t480.
Kod pengesahan adalah sangat biasa dalam kehidupan seharian kita menggunakan kod pengesahan mempunyai banyak faedah, seperti:
Mencegah peretasan kata laluan yang berniat jahat. Sebagai contoh, untuk mendapatkan maklumat pengguna, sesetengah penggodam menggunakan cara yang berbeza untuk menghantar data ke pelayan untuk mengesahkan ketepatan maklumat pengguna yang telah diteka.
Halang manipulasi tiket berniat jahat dan banjir forum. Fenomena banjir ini telah lama wujud dalam forum, seperti Tieba, di mana jawatan sentiasa dihantar. Kini Baidu Tieba telah menetapkan had masa untuk pengguna membuat siaran Jika terdapat terlalu banyak siaran dalam tempoh masa tertentu, anda tidak akan dapat meneruskan siaran.
Halang permintaan berniat jahat. Sebagai contoh, jika pengguna menyerahkan maklumat borang, ia akan menyebabkan pembaziran sumber pelayan dan serangan berniat jahat dengan meminta maklumat data secara berterusan dari latar belakang.
Seronok. Ini adalah pendapat peribadi Apabila kami menyerahkan borang, jika kami menemui beberapa kaedah kod pengesahan yang menarik, ia boleh meningkatkan kecintaan pengguna terhadap tapak web.
Dapatkan maklumat pengguna. Ini adalah perkara biasa dalam laman web hari ini. Sebagai contoh, jika kami mendaftarkan akaun di tapak, kami perlu lulus kod pengesahan telefon mudah alih untuk berjaya mendaftar. Selepas laman web tersebut memperoleh nombor telefon pengguna, ia akan menghantar beberapa maklumat pemasaran kepada pemilik nombor telefon bimbit tersebut.
Jadi bagaimana kita melaksanakan fungsi log masuk kod pengesahan? Mari kita lihat bersama-sama!
Konfigurasi persekitaran:
Anda hanya perlu memasang pustaka sambungan GD PHP secara setempat untuk menggunakannya. Bagaimana untuk menyemak, mencipta fail PHP dan menulis dalam fail, akses fail dan jika anda melihat bahawa pustaka GD telah dipasang, anda boleh menggunakannya.
Pelaksanaan kod khusus:
1 Kami mula-mula membuat halaman html untuk memaparkan kod pengesahan
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登陸</title>
</head>
<body>
<form action="./login.php" method="post">
<img src="image_captcha.php" onclick="this.src='image_captcha.php?'+new Date().getTime();" width="200" height="200"><br/>
<input type="text" name="captcha" placeholder="請輸入圖片中的驗證碼"><br/>
<input type="submit" value="驗證">
</form>
</body>
</html>
2. Buat fail PHP untuk menerima pengesahan yang masuk maklumat kod halaman hujung hadapan
<?php
/**
* 接受用戶登陸時提交的驗證碼
*/
session_start();
//1. 獲取到用戶提交的驗證碼
$captcha = $_POST["captcha"];
//2. 將session中的驗證碼和用戶提交的驗證碼進行核對,當成功時提示驗證碼正確,并銷毀之前的session值,不成功則重新提交
if(strtolower($_SESSION["captchaimg"]) == strtolower($captcha)){
echo "驗證碼正確!";
$_SESSION["captcha"] = "";
}else{
echo "驗證碼提交不正確!";
}
3. Cipta kod pengesahan untuk menjana fail PHP
<?php
/**
* 字母+數(shù)字的驗證碼生成
*/
// 開啟session
session_start();
//1.創(chuàng)建黑色畫布
$image = imagecreatetruecolor(100, 30);
//2.為畫布定義(背景)顏色
$bgcolor = imagecolorallocate($image, 255, 255, 255);
//3.填充顏色
imagefill($image, 0, 0, $bgcolor);
// 4.設置驗證碼內容
//4.1 定義驗證碼的內容
$content = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
//4.1 創(chuàng)建一個變量存儲產(chǎn)生的驗證碼數(shù)據(jù),便于用戶提交核對
$captcha = "";
for ($i = 0; $i < 4; $i++) {
// 字體大小
$fontsize = 10;
// 字體顏色
$fontcolor = imagecolorallocate($image, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
// 設置字體內容
$fontcontent = substr($content, mt_rand(0, strlen($content)), 1);
$captcha .= $fontcontent;
// 顯示的坐標
$x = ($i * 100 / 4) + mt_rand(5, 10);
$y = mt_rand(5, 10);
// 填充內容到畫布中
imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}
$_SESSION["captcha"] = $captcha;
//4.3 設置背景干擾元素
for ($$i = 0; $i < 200; $i++) {
$pointcolor = imagecolorallocate($image, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
imagesetpixel($image, mt_rand(1, 99), mt_rand(1, 29), $pointcolor);
}
//4.4 設置干擾線
for ($i = 0; $i < 3; $i++) {
$linecolor = imagecolorallocate($image, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
imageline($image, mt_rand(1, 99), mt_rand(1, 29), mt_rand(1, 99), mt_rand(1, 29), $linecolor);
}
//5.向瀏覽器輸出圖片頭信息
header('content-type:image/png');
//6.輸出圖片到瀏覽器
imagepng($image);
//7.銷毀圖片
imagedestroy($image);
Pembelajaran yang disyorkan: latihan php
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan log masuk kod pengesahan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!