Rumah > Artikel > pembangunan bahagian belakang > Sebab dan penyelesaian mengapa imej kod pengesahan PHP tidak boleh dipaparkan
Captchas ialah langkah keselamatan biasa yang digunakan untuk menghalang penyerahan automatik daripada bot. Dalam PHP, menjana captcha biasanya menggunakan perpustakaan imej GD, yang menyediakan pelbagai fungsi lukisan untuk mencipta imej. Walau bagaimanapun, kadangkala anda akan menghadapi masalah bahawa imej kod pengesahan tidak dapat dipaparkan dengan betul. Artikel ini akan membincangkan beberapa sebab dan penyelesaian biasa.
Pertama sekali, pastikan anda telah memasang pustaka imej GD untuk PHP, jika tidak, kod pengesahan tidak akan dibuat biasalah. Anda boleh menyemak sama ada GD didayakan dengan menjalankan arahan berikut:
php -m | grep -i gd
Jika "gd" dikembalikan, ini bermakna perpustakaan GD telah didayakan. Jika tiada apa yang dikembalikan, anda perlu memasang pustaka GD Anda boleh menggunakan arahan berikut untuk memasangnya:
sudo apt-get install php-gd
Selepas pemasangan selesai, anda perlu memulakan semula pelayan web untuk mendayakan pustaka GD. .
Apabila membuat kod pengesahan, anda biasanya perlu menyimpan imej ke sistem fail pelayan. Jika pengguna di mana skrip PHP berada tidak mempunyai kebenaran yang mencukupi untuk menulis fail ke direktori yang ditentukan, imej kod pengesahan tidak akan dijana dengan betul dan tidak akan dipaparkan dengan betul. Oleh itu, untuk memastikan pengguna di mana skrip PHP terletak mempunyai kebenaran menulis yang mencukupi ke direktori, anda boleh menggunakan arahan berikut untuk memberikan kebenaran:
chmod 777 /path/to/directory
Dalam PHP, captcha sering digunakan bersama dengan sesi untuk memastikan hanya pengguna manusia boleh disahkan. Jika tetapan sesi tidak betul, imej kod pengesahan tidak boleh dijana dengan betul. Sesi boleh didayakan dalam PHP:
Cari maklumat konfigurasi yang berkaitan di bawah sesi dalam fail PHP.ini dan pastikan maklumat konfigurasi berikut betul:
session.save_path = "/var/lib/php/session" session.use_strict_mode = 1 session.cookie_lifetime = 0 session.use_cookies = 1 session.use_only_cookies = 0 session.name = PHPSESSID
Jika versi perpustakaan GD anda terlalu lama atau ketinggalan zaman, anda tidak akan dapat mencipta imej kod pengesahan berkualiti tinggi dan mungkin tidak memaparkannya. Untuk menyelesaikan masalah ini, anda boleh cuba menaik taraf pustaka GD kepada versi terkini untuk memastikan keserasian dan prestasi terbaik.
Jika PHP kehabisan memori, pustaka GD mungkin ranap apabila menjana imej. Anda boleh cuba meningkatkan had memori PHP untuk menyelesaikan masalah ini Anda boleh mencari baris memory_limit dalam fail PHP.ini dan menetapkannya kepada nilai yang lebih tinggi, contohnya:
memory_limit = 128M
Akhir sekali, jika nama fail imej kod pengesahan tidak betul, imej tidak akan dipaparkan dengan betul. Apabila membuat CAPTCHA, pastikan nama dan laluan fail adalah betul dan sepadan dengan kod HTML CAPTCHA yang dijana. Cuma pastikan anda merujuk laluan imej dan nama fail yang betul dalam kod HTML anda.
Ringkasan
Dalam PHP, masalah imej kod pengesahan tidak boleh dipaparkan biasanya disebabkan oleh sebab berikut: Pustaka imej GD tidak dipasang atau didayakan dengan betul, kebenaran direktori tidak betul dan Tetapan sesi PHP tidak betul , ketidakserasian versi perpustakaan GD, memori PHP tidak mencukupi, nama fail tidak betul, dsb. Dengan menyemak isu ini dengan teliti, anda boleh menyelesaikan masalah imej kod pengesahan yang tidak dipaparkan dengan betul dengan mudah.
Atas ialah kandungan terperinci Sebab dan penyelesaian mengapa imej kod pengesahan PHP tidak boleh dipaparkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!