Apabila menggunakan ThinkPHP3.2 baru-baru ini, kadangkala kita menghadapi masalah bahawa kod pengesahan tidak dipaparkan. Bagaimana kita harus menyelesaikan situasi ini? Artikel ini akan berkongsi beberapa penyelesaian dengan anda.
Pertama sekali, kita perlu memahami prinsip penjanaan kod pengesahan. Dalam ThinkPHP, kod pengesahan dijana dengan membuat contoh kelas Verify, yang menjana imej kod pengesahan rawak berdasarkan parameter yang ditentukan dan menyimpan nilai kod pengesahan ke sesi. Kami boleh memanggil kaedah penjanaan kod pengesahan melalui kod yang serupa dengan yang berikut:
$verify = new \Think\Verify(); $verify->entry();
Seterusnya, kami perlu menyemak pilihan konfigurasi yang berkaitan untuk menjana kod pengesahan. Dalam ThinkPHP, konfigurasi yang berkaitan semasa menjana kod pengesahan boleh ditetapkan dalam fail config.php, contohnya:
'VERIFY_LENGTH' => 4, // 验证码长度 'VERIFY_IMAGEH' => 45, // 验证码图片高度 'VERIFY_IMAGEW' => 160, // 验证码图片宽度 'VERIFY_FONTFILE' => './Data/Font/elephant.ttf', // 验证码字体文件
Jika kami menetapkan pilihan konfigurasi VERIFY_FONTFILE dengan tidak betul, atau fail fon tidak wujud, ia mungkin Akibatnya, kod pengesahan tidak dapat dipaparkan seperti biasa. Oleh itu, kita perlu memastikan bahawa nilai pilihan konfigurasi VERIFY_FONTFILE adalah betul dan fail fon wujud di lokasi yang ditentukan.
Jika tiada masalah di atas wujud, maka kita perlu menyemak sama ada sambungan perpustakaan GD didayakan dalam persekitaran PHP. Pustaka GD ialah pustaka pemprosesan imej yang biasa digunakan dalam PHP Jika sambungan ini tidak dihidupkan, imej kod pengesahan tidak boleh dijana. Kita boleh menyemak sama ada perpustakaan GD telah dibuka dengan melaksanakan fungsi phpinfo() dalam PHP, contohnya:
<?php phpinfo();
Kemudian buka fail PHP dalam penyemak imbas untuk mengetahui sama ada modul gd dimuatkan.
Akhir sekali, jika tiada masalah di atas wujud, maka kami boleh mempertimbangkan menyahpepijat kod untuk melihat apa yang berlaku. Untuk kaedah tertentu, sila rujuk kod berikut:
$verify = new \Think\Verify(); if (!$verify->check($code)) { // 验证码输入有误 exit($verify->getError()); }
Dalam kod di atas, kami menambah kod nyahpepijat sebelum pengesahan kod pengesahan Jika pengesahan kod pengesahan gagal, mesej ralat akan dikeluarkan. sekali gus membantu kami masalah Kedudukan yang lebih baik.
Secara umumnya, terdapat banyak kemungkinan kod pengesahan tidak dipaparkan dan kita perlu menyiasat satu persatu untuk mencari sebab tertentu. Kaedah di atas hanya menyediakan beberapa penyelesaian biasa, saya harap ia boleh membantu semua orang.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bahawa kod pengesahan tidak dipaparkan dalam thinkphp3.2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!