Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kemahiran pembangunan PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan

Kemahiran pembangunan PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan

WBOY
WBOYasal
2023-09-21 13:16:412049semak imbas

Kemahiran pembangunan PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan

Kemahiran pembangunan PHP: Cara melaksanakan fungsi kod pengesahan

Kod pengesahan (CAPTCHA) ialah teknologi biasa yang digunakan untuk mengesahkan identiti pengguna dan digunakan secara meluas dalam pembangunan laman web. Kod pengesahan boleh menghalang pendaftaran berniat jahat dengan berkesan oleh robot, peretasan kekerasan dan tingkah laku berniat jahat yang lain serta meningkatkan keselamatan tapak web. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan fungsi kod pengesahan dan menyediakan contoh kod khusus.

1. Jana kod pengesahan

Menjana kod pengesahan ialah langkah pertama untuk melaksanakan fungsi kod pengesahan. Kami boleh membuat gambar melalui perpustakaan GD dan melukis aksara kod pengesahan yang dijana secara rawak pada gambar. Berikut ialah contoh kod untuk menjana kod pengesahan:

<?php
session_start();

// 随机生成验证码字符
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$randomString = '';
$length = 6;

for ($i = 0; $i < $length; $i++) {
    $randomString .= $characters[rand(0, strlen($characters) - 1)];
}

// 将验证码字符保存到session中
$_SESSION['captcha'] = $randomString;

// 创建验证码图片
$image = imagecreatetruecolor(200, 100);
$bgColor = imagecolorallocate($image, 255, 255, 255);
$textColor = imagecolorallocate($image, 0, 0, 0);

imagefilledrectangle($image, 0, 0, 200, 100, $bgColor);
imagettftext($image, 40, 0, 60, 60, $textColor, 'font.ttf', $randomString);

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Dalam kod di atas, mula-mula kami menggunakan fungsi session_start() untuk membuka sesi untuk menyimpan aksara kod pengesahan. Kami kemudian memilih aksara secara rawak melalui gelung, menyimpannya ke dalam pembolehubah $randomString, dan menyimpannya dalam $_SESSION['captcha']. Seterusnya, gunakan fungsi imagecreatetruecolor() untuk mencipta kanvas $image dengan saiz 200x100 piksel, dan tetapkan warna latar belakang dan warna teks. Gunakan fungsi imagefilledrectangle() untuk mengisi kanvas dengan warna putih, dan kemudian gunakan fungsi imagettftext() untuk melukis aksara captcha pada kanvas. Akhir sekali, gunakan fungsi header() untuk menetapkan jenis respons kepada imej/png, dan gunakan fungsi imagepng() untuk mengeluarkan kanvas sebagai imej PNG.

2. Pengesahan kod pengesahan

Selepas menjana kod pengesahan, kami perlu memaparkannya di halaman web dan menyediakan kotak input untuk pengguna memasukkan kod pengesahan. Apabila pengguna menyerahkan borang, kami perlu mengesahkan ketepatan kod pengesahan. Berikut ialah contoh kod untuk pengesahan kod pengesahan:

<?php
session_start();

// 获取用户输入的验证码
$userCaptcha = $_POST['captcha'];

// 验证码比较(不区分大小写)
if (strcasecmp($userCaptcha, $_SESSION['captcha']) == 0) {
    echo '验证码正确';
} else {
    echo '验证码错误';
}

// 清除session中的验证码
unset($_SESSION['captcha']);
?>

Dalam kod di atas, mula-mula kita menggunakan fungsi session_start() untuk membuka sesi, dan kemudian mendapatkan kod pengesahan $_POST['captcha'] yang dimasukkan oleh pengguna daripada borang yang dihantar oleh pengguna. Kemudian, gunakan fungsi strcasecmp() untuk membandingkan kod pengesahan yang dimasukkan oleh pengguna dengan kod pengesahan yang disimpan dalam sesi. Fungsi strcasecmp() ialah fungsi perbandingan rentetan tidak sensitif huruf besar yang mengembalikan 0 untuk menunjukkan kesamaan dan bukan sifar untuk menunjukkan ketidaksamaan. Keluarkan maklumat yang sepadan berdasarkan hasil perbandingan. Akhir sekali, gunakan fungsi unset() untuk mengosongkan kod pengesahan dalam sesi untuk kegunaan lain kali.

3. Gunakan fungsi kod pengesahan

Berikut ialah contoh kod untuk menggunakan fungsi kod pengesahan:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>验证码示例</title>
</head>
<body>
    <form action="verify.php" method="POST">
        <img src="captcha.php" alt="验证码">
        <input type="text" name="captcha" placeholder="请输入验证码">
        <input type="submit" value="提交">
    </form>
</body>
</html>

Dalam kod di atas, kami menggunakan teg Kemahiran pembangunan PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan dalam borang HTML untuk memaparkan kod pengesahan dan tetapkan kod pengesahan Atribut src bagi imej ialah captcha.php Fail PHP ini digunakan untuk menjana kod pengesahan. Borang ini juga mengandungi kotak input untuk pengguna memasukkan kod pengesahan dan butang hantar. Selepas pengguna memasukkan kod pengesahan dan mengklik butang hantar, borang akan dihantar ke fail verify.php untuk pengesahan kod pengesahan.

Ringkasan

Artikel ini memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan fungsi kod pengesahan dan menyediakan contoh kod khusus. Dengan menjana aksara rawak dan melukis imej kod pengesahan, kami boleh menghalang serangan bot dan pelakon berniat jahat di tapak web dengan berkesan. Apabila menggunakan fungsi kod pengesahan, anda perlu memberi perhatian untuk melindungi keselamatan aksara kod pengesahan untuk mengelakkan mereka daripada diduga oleh program berniat jahat. Saya harap artikel ini dapat membantu anda memahami dan menggunakan fungsi kod pengesahan.

Atas ialah kandungan terperinci Kemahiran pembangunan PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn