Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bermula dengan PHP dan Perpustakaan GD: Cara Membuat Sistem Pengesahan Captcha

Bermula dengan PHP dan Perpustakaan GD: Cara Membuat Sistem Pengesahan Captcha

WBOY
WBOYasal
2023-07-15 11:21:22768semak imbas

Bermula dengan PHP dan Perpustakaan GD: Cara Membuat Sistem Pengesahan Captcha

Captcha ialah teknologi yang digunakan untuk mengesahkan sama ada pengguna adalah manusia sebenar. Ia digunakan secara meluas dalam tapak web dan aplikasi untuk mencegah penyalahgunaan dan serangan oleh skrip dan bot automatik. Artikel ini akan memperkenalkan cara membuat sistem pengesahan kod pengesahan mudah menggunakan PHP dan perpustakaan GD.

Pustaka GD ialah perpustakaan sambungan PHP untuk memproses imej. Ia menyediakan beberapa alat pemprosesan imej yang berkuasa, termasuk menjana imej, memanipulasi piksel imej dan mencipta kod pengesahan. Sebelum kita bermula, kita perlu memastikan bahawa perpustakaan GD dipasang dan didayakan dengan betul pada pelayan.

Langkah pertama ialah menjana imej kod pengesahan. Kami akan menggunakan fungsi perpustakaan GD untuk mencipta imej yang mengandungi aksara rawak. Berikut ialah contoh kod mudah:

<?php
// 创建一个验证码图像
$image = imagecreatetruecolor(200, 50);

// 设置背景颜色为白色
$background_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $background_color);

// 生成随机字符
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$code = '';
for ($i = 0; $i < 6; $i++) {
    $code .= $characters[rand(0, strlen($characters) - 1)];
}

// 将验证码保存到会话中
session_start();
$_SESSION['captcha_code'] = $code;

// 将随机字符绘制到图像上
$text_color = imagecolorallocate($image, 0, 0, 0);
imagettftext($image, 18, 0, 10, 35, $text_color, 'path/to/font.ttf', $code);

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

Dalam kod di atas, kami mula-mula mencipta imej 200x50 piksel dan kemudian mengisi latar belakang dengan warna putih. Seterusnya, kami menjana kod pengesahan yang terdiri daripada 6 aksara rawak dan menyimpannya ke pembolehubah sesi. Akhir sekali, kami melukis kod pengesahan pada imej dan mengeluarkan imej ke penyemak imbas dalam format PNG.

Langkah kedua ialah membuat sistem pengesahan untuk menyemak sama ada kod pengesahan yang dimasukkan oleh pengguna adalah konsisten dengan kod pengesahan yang dijana. Berikut ialah contoh kod:

<?php
// 检查用户输入的验证码是否匹配
session_start();
if (isset($_SESSION['captcha_code']) && $_POST['captcha'] === $_SESSION['captcha_code']) {
    echo '验证码验证成功!';
    // 验证通过后,可以执行其他操作,如用户登录等
} else {
    echo '验证码验证失败!';
    // 验证失败后,可以执行相应的错误处理逻辑
}
?>

Dalam kod di atas, kami mula-mula memulakan sesi dan menyemak sama ada kod pengesahan wujud dalam sesi. Kami kemudian membandingkan kod pengesahan yang dimasukkan oleh pengguna dengan kod pengesahan dalam sesi. Jika kedua-duanya konsisten, iaitu, pengesahan diluluskan, dan kami boleh melakukan operasi yang sepadan (seperti log masuk pengguna). Jika tidak, pengesahan gagal dan kami boleh melaksanakan logik pengendalian ralat yang sepadan.

Untuk menggunakan sistem pengesahan CAPTCHA, kami boleh menambah medan input CAPTCHA pada borang HTML dan membandingkan CAPTCHA yang dimasukkan pengguna dengan bahagian pelayan semasa menyerahkan borang. Berikut ialah contoh kod mudah:

<form action="verify.php" method="post">
    <label for="captcha">验证码:</label>
    <input type="text" name="captcha" id="captcha">
    <img src="captcha.php" alt="验证码"><br>
    <input type="submit" value="提交">
</form>

Dalam kod di atas, kami telah mencipta borang dengan medan input kod pengesahan dan mengesahkannya menggunakan captcha.php作为验证码图像的源。当用户提交表单时,表单数据将发送到verify.php.

Melalui langkah di atas, kami telah berjaya mencipta sistem pengesahan kod pengesahan asas. Pengguna perlu memasukkan kod pengesahan dengan betul untuk lulus pengesahan. Anda boleh menyesuaikan gaya dan panjang kod pengesahan mengikut keperluan untuk meningkatkan keselamatan sistem.

Ringkasan: Artikel ini memperkenalkan cara membuat sistem pengesahan kod pengesahan mudah menggunakan perpustakaan PHP dan GD. Dengan mencipta imej CAPTCHA dan membandingkannya dengan input pengguna, kami boleh mencegah penyalahgunaan dan serangan daripada skrip dan bot automatik dengan berkesan. Saya harap artikel ini dapat membantu anda dan meningkatkan pemahaman dan aplikasi sistem pengesahan kod pengesahan.

Atas ialah kandungan terperinci Bermula dengan PHP dan Perpustakaan GD: Cara Membuat Sistem Pengesahan Captcha. 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