Rumah >pembangunan bahagian belakang >tutorial php >Cara menjana kod pengesahan imej yang boleh dimuat semula menggunakan PHP

Cara menjana kod pengesahan imej yang boleh dimuat semula menggunakan PHP

WBOY
WBOYasal
2023-09-13 11:54:111103semak imbas

Cara menjana kod pengesahan imej yang boleh dimuat semula menggunakan PHP

Cara menggunakan PHP untuk menjana kod pengesahan imej yang boleh dimuat semula

Dengan perkembangan Internet, untuk mengelakkan serangan berniat jahat dan operasi mesin automatik, banyak tapak web menggunakan kod pengesahan untuk pengesahan pengguna. Satu jenis kod pengesahan yang biasa ialah kod pengesahan imej, yang menghasilkan gambar yang mengandungi aksara rawak dan memerlukan pengguna memasukkan aksara yang betul sebelum meneruskan.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk menjana kod pengesahan imej yang boleh dimuat semula dan memberikan contoh kod khusus.

Langkah 1: Buat imej kod pengesahan

Pertama, kita perlu mencipta fungsi untuk menjana imej kod pengesahan. Melalui perpustakaan GD PHP, kami boleh memanipulasi imej dengan mudah. Berikut ialah contoh kod untuk mencipta imej kod pengesahan:

<?php
function generateCaptcha($length = 6) {
    // 生成随机的验证码字符串
    $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    $captcha = '';
    for ($i = 0; $i < $length; $i++) {
        $captcha .= $chars[rand(0, strlen($chars) - 1)];
    }

    // 将验证码字符串保存到Session中,以备后续验证
    session_start();
    $_SESSION['captcha'] = $captcha;

    // 创建一个空白的验证码图片
    $image = imagecreatetruecolor(120, 40);
    $background_color = imagecolorallocate($image, 255, 255, 255);
    imagefill($image, 0, 0, $background_color);

    // 在验证码图片上绘制随机的字符
    $text_color = imagecolorallocate($image, 0, 0, 0);
    imagettftext($image, 20, 0, 10, 30, $text_color, 'path/to/font.ttf', $captcha);

    // 输出验证码图片
    header('Content-type: image/png');
    imagepng($image);
    imagedestroy($image);
}
?>

Dalam kod di atas, fungsi generateCaptcha digunakan untuk menjana kod pengesahan dan menyimpan rentetan kod pengesahan ke Sesi. Kemudian, buat gambar kod pengesahan kosong, tetapkan warna latar belakang, warna teks, fon dan parameter lain dan lukis kod pengesahan pada gambar. Akhir sekali, tetapkan jenis kandungan output kepada imej melalui fungsi header, panggil fungsi imagepng untuk mengeluarkan imej, dan kemudian musnahkan sumber imej. generateCaptcha函数用于生成验证码,并将验证码字符串保存到Session中。然后,创建一个空白的验证码图片,设置背景色、文本颜色、字体等参数,并在图片上绘制验证码。最后,通过header函数设置输出的内容类型为图片,调用imagepng函数输出图片,然后销毁图片资源。

步骤二:使用验证码图片

下面是一个简单的示例代码,用于在网页中显示验证码图片并接受用户输入的验证码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>生成验证码</title>
</head>
<body>
    <form action="verify_captcha.php" method="post">
        <label for="captcha">请输入验证码:</label>
        <input type="text" id="captcha" name="captcha">
        <img src="captcha.php" alt="验证码">
        <button type="submit">提交</button>
    </form>
</body>
</html>

在上述代码中,form表单的action属性指向一个验证验证码的PHP文件(如verify_captcha.php),img标签的src属性指向生成验证码图片的PHP文件(如captcha.php)。用户在输入框中输入验证码后,提交表单并进行验证。

步骤三:验证输入的验证码

最后,我们需要创建一个用于验证用户输入的验证码是否正确的PHP文件。以下是一个简单的验证验证码的示例代码:

<?php
session_start();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $inputCaptcha = $_POST['captcha'];
    $captcha = $_SESSION['captcha'];

    if ($inputCaptcha === $captcha) {
        echo '验证码正确';
    } else {
        echo '验证码错误';
    }
}
?>

在上述代码中,首先通过session_start

Langkah 2: Gunakan imej kod pengesahan

Berikut ialah contoh kod mudah untuk memaparkan imej kod pengesahan dalam halaman web dan menerima kod pengesahan yang dimasukkan oleh pengguna: 🎜rrreee🎜Dalam kod di atas, form Atribut action bagi kod> menunjukkan fail PHP yang mengesahkan kod pengesahan (seperti verify_captcha.php), dan srcimg Atribut /code> menghala ke fail PHP yang menjana imej kod pengesahan (seperti captcha.php). Selepas pengguna memasukkan kod pengesahan dalam kotak input, borang diserahkan dan disahkan. 🎜🎜Langkah 3: Sahkan kod pengesahan yang dimasukkan🎜🎜Akhir sekali, kita perlu mencipta fail PHP yang mengesahkan sama ada kod pengesahan yang dimasukkan oleh pengguna adalah betul. Berikut ialah contoh kod mudah untuk mengesahkan kod pengesahan: 🎜rrreee🎜Dalam kod di atas, Sesi dibuka untuk pertama kali melalui fungsi session_start, dan kemudian kod pengesahan yang dimasukkan oleh pengguna dan pengesahan kod yang disimpan sebelum ini dalam Sesi diperolehi Buat perbandingan. Jika ia adalah sama, keluarkan "kod pengesahan adalah betul"; jika ia berbeza, keluarkan "kod pengesahan adalah salah". 🎜🎜Di atas ialah langkah dan contoh kod untuk menggunakan PHP untuk menjana kod pengesahan imej yang boleh dimuat semula. Dengan cara ini, kami menghalang mesin automatik daripada beroperasi dan meningkatkan keselamatan tapak web dan aplikasi kami. 🎜

Atas ialah kandungan terperinci Cara menjana kod pengesahan imej yang boleh dimuat semula 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