Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menjana imej kod pengesahan menggunakan PHP

Bagaimana untuk menjana imej kod pengesahan menggunakan PHP

WBOY
WBOYasal
2023-08-19 14:12:341975semak imbas

Bagaimana untuk menjana imej kod pengesahan menggunakan PHP

Cara menjana imej kod pengesahan menggunakan PHP

Kod pengesahan Captcha (CAPTCHA) ialah teknologi biasa yang digunakan untuk mengesahkan pengguna atau menyekat akses kepada program automatik. Dengan menjana imej rawak dan memerlukan pengguna mengenal pasti aksara atau imej yang betul, CAPTCHA boleh menghalang serangan bot dan pendaftaran spam dengan berkesan. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PHP untuk menjana imej kod pengesahan dan memaparkannya pada halaman.

  1. Pertama, kita perlu mencipta fail PHP untuk menjana imej kod pengesahan. Anda boleh menamakannya captcha.php dan pastikan sambungan fail ialah .php.
  2. Dalam fail captcha.php, kita perlu menentukan beberapa pembolehubah untuk menetapkan lebar, ketinggian dan bilangan aksara imej kod pengesahan. Kita juga boleh menentukan tatasusunan untuk menyimpan semua aksara yang mungkin. Contoh kod adalah seperti berikut:
<?php
$width = 120; // 验证码图片的宽度
$height = 40; // 验证码图片的高度
$characters = 4; // 验证码字符个数

$possibleChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  1. Seterusnya, kita perlu mencipta imej kosong dan menetapkan beberapa sifat imej asas, seperti warna dan fon. Contoh kod adalah seperti berikut:
$image = imagecreatetruecolor($width, $height);

$backgroundColor = imagecolorallocate($image, 255, 255, 255); // 背景颜色为白色
$textColor = imagecolorallocate($image, 0, 0, 0); // 文字颜色为黑色

imagefill($image, 0, 0, $backgroundColor);

$font = 'path/to/your/font.ttf'; // 字体文件路径,可以根据自己的需求修改
  1. Kini, kita perlu menjana aksara secara rawak dan melukisnya pada gambar. Kita boleh menggunakan fungsi rawak PHP untuk memilih aksara daripada tatasusunan aksara dan menggunakan fungsi imagettftext untuk menulis aksara pada imej. Contoh kod adalah seperti berikut:
$captcha = '';

for ($i = 0; $i < $characters; $i++) {
    $randomChar = $possibleChars[rand(0, strlen($possibleChars) - 1)];
    $captcha .= $randomChar;

    $x = ($width / $characters) * $i + 10; // 10为字体边距
    $y = $height / 2 + 15; // 15为字体居中偏移量

    imagettftext($image, 20, 0, $x, $y, $textColor, $font, $randomChar);
}
  1. Akhir sekali, kita perlu menyimpan kod pengesahan yang dijana dalam sesi untuk pengesahan seterusnya. Contoh kod adalah seperti berikut:
session_start();
$_SESSION['captcha'] = $captcha;
  1. Langkah terakhir adalah untuk mengeluarkan imej kod pengesahan yang dijana dan menetapkan maklumat pengepala yang sepadan. Contoh kod adalah seperti berikut:
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);

Kesimpulan

Melalui langkah di atas, kami berjaya menghasilkan imej kod pengesahan mudah dan memaparkannya pada halaman web. Setiap kali pengguna memuat semula halaman, dia akan mendapat kod pengesahan baharu untuk memastikan keunikan dan keselamatan kod pengesahan. Dalam aplikasi praktikal, kita boleh membandingkan kod pengesahan yang dimasukkan oleh pengguna dengan kod pengesahan yang disimpan dalam sesi untuk mengesahkan identiti pengguna.

Ini adalah contoh mudah PHP menjana imej kod pengesahan Anda boleh menambah baik dan mengembangkan fungsi ini mengikut keperluan anda sendiri. Saya harap artikel ini akan membantu anda memahami dan menggunakan teknologi kod pengesahan!

Atas ialah kandungan terperinci Bagaimana untuk menjana imej kod pengesahan menggunakan PHP. 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