Rumah > rangka kerja php > ThinkPHP > Menggunakan teknologi Captcha dalam ThinkPHP6

Menggunakan teknologi Captcha dalam ThinkPHP6

王林
Lepaskan: 2023-06-21 09:10:57
asal
2269 orang telah melayarinya

Dengan populariti Internet, teknologi kod pengesahan telah menjadi kaedah perlindungan rutin untuk tapak web dan aplikasi. CAPTCHA boleh menghalang robot berniat jahat dan perangkak daripada menyerang tapak web dan aplikasi, memastikan keselamatan maklumat dan privasi pengguna. Dalam ThinkPHP6, teknologi Captcha terbina dalam, dan fungsi kod pengesahan boleh dilaksanakan dengan mudah melalui konfigurasi dan panggilan mudah.

1. Pengenalan asas kepada Captcha

Captcha ialah teknologi kod pengesahan imej adalah untuk menunjukkan kepada pengguna imej yang dijana secara rawak apabila pengguna masuk atau menyerahkan borang kod pengesahan dalam imej untuk meneruskan. Teknologi ini sebahagian besarnya boleh menghalang serangan berniat jahat dan bot automatik daripada merosakkan tapak web atau aplikasi. Teknologi Captcha biasa termasuk nombor, huruf atau gabungan huruf dan nombor, kod pengesahan suara, kod pengesahan gelongsor, dsb.

2. Gunakan teknologi Captcha terbina dalam ThinkPHP6

ThinkPHP6 mempunyai kelas Captcha terbina dalam yang boleh melaksanakan fungsi kod pengesahan dengan mudah. Teknologi Captcha dilaksanakan berdasarkan perpustakaan GD dan mekanisme sesi, dan boleh menjana imej rawak nombor dan huruf. Sebelum digunakan, anda perlu memastikan bahawa perpustakaan GD telah dipasang dan didayakan pada pelayan.

  1. Tetapan fail konfigurasi

Pertama sekali, kita perlu menetapkan konfigurasi Captcha yang berkaitan dalam konfigurasi fail config/app.php, termasuk bilangan digit bagi kod pengesahan, bilangan kod pengesahan Lebar dan ketinggian dsb. Konfigurasi adalah seperti berikut:

'captcha'    => [
        // 验证码位数
        'length'   => 4,
        // 验证码图片宽度
        'width'    => 150,
        // 验证码图片高度
        'height'   => 50,
        // 验证码过期时间(秒)
        'expire'   => 1800,
        // 是否使用中文验证码
        'useZh'    => false,
        // 是否使用算术验证码
        'math'     => false,
        // 是否使用背景图
        'useImgBg' => false,
    ],
Salin selepas log masuk

Dalam konfigurasi di atas, apa yang perlu diperhatikan ialah:

panjang: bilangan digit kod pengesahan, yang boleh ditetapkan mengikut keperluan

lebar dan tinggi: pengesahan Lebar dan ketinggian imej kod boleh ditetapkan mengikut keperluan

tamat tempoh: masa tamat tempoh kod pengesahan, dalam beberapa saat masa yang ditetapkan;

useZh: sama ada Gunakan kod pengesahan bahasa Cina;

useImgBg: Sama ada hendak menggunakan imej latar belakang, anda boleh menambah gambar sebagai latar belakang kod pengesahan.

Penulisan pengawal
  1. Kita perlu memanggil kelas Captcha dalam pengawal untuk menjana kod pengesahan dan memaparkannya pada halaman, dan pada masa yang sama menyimpan kod pengesahan kepada sesi , digunakan untuk mengesahkan sama ada kod pengesahan yang dimasukkan adalah betul. Kod pengawal adalah seperti berikut:
use thinkcaptchaacadeCaptcha;

class Index extends BaseController
{
    public function captcha()
    {
        return Captcha::create();
    }
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah panggilan statik ThinkPHP6 untuk menjana kod pengesahan terus melalui kaedah Captcha::create(). Kod pengesahan yang dijana akan mengembalikan aliran imej binari, yang boleh kami paparkan secara langsung menggunakan teg

Paparan halaman
  1. Akhir sekali, kami perlu menggunakan teg pada halaman untuk memaparkan kod pengesahan yang dijana dan menyerahkan kod pengesahan apabila borang diserahkan kepada pelayan bersama-sama. Kod tersebut adalah seperti berikut:
<form action="submit" method="POST">
    <!-- 显示验证码 -->
    <img src="<?php echo url('/index/captcha'); ?>" onclick="this.src=this.src+'?'+Math.random();" />
    <!-- 输入验证码 -->
    <label for="verifyCode">验证码:</label>
    <input type="text" name="verifyCode" />
    <button type="submit">提交</button>
</form>
Salin selepas log masuk

Dalam kod di atas, kami menggunakan fungsi url() untuk menjana alamat URL Captcha dan mencetuskan penjanaan semula kod pengesahan melalui acara onclick. Nama kotak input kod pengesahan perlu konsisten dengan nama kod pengesahan yang diproses oleh pelayan, supaya pelayan boleh mendapatkan nilai kod pengesahan yang dimasukkan oleh pengguna dengan betul.

3. Ringkasan

Teknologi Captcha telah menjadi kaedah perlindungan konvensional untuk tapak web dan aplikasi Dengan menggunakan kelas Captcha terbina dalam ThinkPHP6, kami boleh melaksanakan fungsi kod pengesahan dengan mudah. Sebelum digunakan, anda perlu memastikan bahawa pustaka GD telah dipasang dan dibuka pada pelayan, dan membuat tetapan yang berkaitan untuk fail konfigurasi Captcha. Akhir sekali, kami perlu memaparkan kod pengesahan pada halaman dan menghantar nilai kod pengesahan yang dimasukkan oleh pengguna kepada pelayan untuk pengesahan apabila borang diserahkan.

Atas ialah kandungan terperinci Menggunakan teknologi Captcha dalam ThinkPHP6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan