Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk menukar kod pengesahan lalai thinkphp

Bagaimana untuk menukar kod pengesahan lalai thinkphp

PHPz
PHPzasal
2023-04-13 18:34:161047semak imbas

thinkphp ialah rangka kerja PHP yang popular untuk membangunkan aplikasi web. Apabila menggunakan rangka kerja thinkphp, kod pengesahan selalunya diperlukan untuk meningkatkan keselamatan sistem. Gaya kod pengesahan lalai dan imej thinkphp mungkin tidak sesuai untuk senario aplikasi tertentu dan perlu diubah. Artikel ini akan memperkenalkan cara menukar kod pengesahan lalai thinkphp.

1. Cari pengawal kod pengesahan

Dalam rangka kerja thinkphp, kod pengesahan dijana dan dikeluarkan oleh pengawal terbina dalam. Kod sumber pengawal ini boleh didapati dalam direktori fail perpustakaan rangka kerja thinkphp Laluan umum ialah: thinkphp/library/think/captcha/Controller.php.

2. Salin pengawal kod pengesahan

Untuk mengelakkan ralat semasa kemas kini sistem kerana mengubah suai pengawal kod pengesahan lalai, anda harus menyalin pengawal kod pengesahan lalai ke lokasi baharu dalam direktori aplikasi dalam direktori.

Langkah khusus adalah seperti berikut:

  1. Buat direktori baharu, contohnya: applicationextracaptcha
  2. Salin controllerController.php ke direktori ini.
  3. Ubah suai ruang nama Controller.php kepada: ruang nama appextracaptcha;

3 Ubah suai pengawal kod pengesahan

Sekarang kita boleh mengubah suai kod pengesahan Pengawal berubah. kaedah penjanaan dan output kod pengesahan.

  1. Ubah suai kaedah output

Kaedah output lalai kod pengesahan adalah untuk mengembalikan gambar dalam format gif, dan kami boleh mengubah suai kaedah output untuk melaksanakan gaya lain kod pengesahan. Sebagai contoh, kod pengesahan boleh dikeluarkan sebagai imej dalam format SVG.

Ubah suai kaedah output kod pengesahan seperti berikut:

public function show()
{
    $config =    [
        'expire'   =>  3,   //验证码过期时间(s)
        'length'   =>  4,   //验证码长度
        'imageH'   =>  60,   //验证码高度
        'fontSize' =>  20,  //验证码字体大小(px)
        'useCurve' =>  false,  //是否画混淆曲线
        'useNoise' =>  false,  //是否添加杂点
        'bg'       =>  [255, 255, 255], //背景颜色
    ];
    $captcha = new Captcha($config);
    $captcha->codeSet = '0123456789';//只用数字作为验证码
  
    // 输出svg格式的图片
    echo $captcha->entry('svg'); 
}
  1. Ubah suai kaedah penjanaan kod pengesahan

kaedah penjanaan kod pengesahan lalai thinkphp adalah untuk menjana nombor dan huruf secara rawak, dan kami juga boleh mengubah suai kaedah penjanaan untuk memenuhi keperluan yang berbeza. Sebagai contoh, kod pengesahan dalam aksara Cina boleh dijana.

Ubah suai kaedah penjanaan kod pengesahan seperti berikut (mengambil penjanaan kod pengesahan bahasa Cina sebagai contoh):

public function show()
{
    //引入新字体文件(这里以方正胖头鱼体为例,字体文件需要自己上传)
    $ttf_file = __DIR__ .'/fzpty.ttf';
    $codeSet = '玩家参与游戏,从而培养了自己 的游戏能力'; //验证码文字内容
  
    $config =    [
        'expire'  =>  3,   //验证码过期时间(s)
        'length'  =>  4,   //验证码长度
        'useZh'   => true, //使用中文验证码
        'fontttf' =>  $ttf_file, //指定ttf字体文件
        'imageH'  =>  60,   //验证码高度
        'fontSize' =>  20,  //验证码字体大小(px)
        'useCurve' =>  false,  //是否画混淆曲线
        'useNoise' =>  false,  //是否添加杂点
        'bg'       =>  [255, 255, 255], //背景颜色
    ];
    $captcha = new Captcha($config);
    $captcha->codeSet = $codeSet;//设置验证码文字内容
  
    // 输出svg格式的图片
    echo $captcha->entry('svg'); 
}

4 Ubah suai fail konfigurasi kod pengesahan

pengesahan thinkphp pengawal kod akan Baca parameter dalam fail konfigurasi untuk menentukan cara kod pengesahan dijana dan dikeluarkan. Oleh itu, kami juga boleh mengubah suai fail konfigurasi untuk mencapai tujuan menukar kod pengesahan.

Langkah khusus adalah seperti berikut:

  1. Salin fail konfigurasi kod pengesahan lalai rangka kerja ke direktori aplikasi anda sendiri

Buka kod pengesahan rangka kerja thinkphp konfigurasi fail php, salin ke direktori konfigurasi di bawah direktori aplikasi, dan namakan semula kepada captcha.php.

  1. Ubah suai konfigurasi kod pengesahan

Anda boleh mengubah suai parameter konfigurasi berkaitan kod pengesahan dalam captcha.php. Contohnya, anda boleh mengubah suai panjang, masa tamat tempoh, saiz fon dan parameter lain kod pengesahan:

return [
    'useNoise'    => false, // 是否添加杂点
    'useCurve'    => false, // 是否画混淆曲线
    'fontSize'    => 25,    // 验证码字体大小
    'expire'      => 1800,  // 验证码过期时间(s)
    'length'      => 4,     // 验证码长度
    'fontttf'     => '',    //验证码字体文件路径
    'bg'          => [255, 255, 255], // 验证码背景颜色,如果设置为数组则表示渐变色
];

5 Ringkasan

Melalui langkah di atas, kami boleh mengubah suai lalai thinkphp. kod pengesahan. Laksanakan gaya tersuai dan kandungan kod pengesahan. Perlu diingatkan bahawa apabila mengubah suai pengawal kod pengesahan dan fail konfigurasi, fail yang disalin mesti diletakkan dalam direktori aplikasi untuk mengelakkan penulisan ganti selepas kemas kini versi.

Atas ialah kandungan terperinci Bagaimana untuk menukar kod pengesahan lalai thinkphp. 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