Dengan pembangunan Internet yang berterusan, semakin banyak tapak web perlu menggunakan kod pengesahan untuk memastikan keselamatan. Kod pengesahan ialah teknologi pengesahan yang bergantung pada keupayaan manusia dan tidak boleh dipecahkan oleh komputer Ia digunakan secara meluas dalam pendaftaran laman web, log masuk, mendapatkan kata laluan dan fungsi lain. Berikut akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi kod pengesahan.
1. Hasilkan imej kod pengesahan
Penjanaan imej kod pengesahan ialah teras fungsi kod pengesahan Ia perlu menjana aksara rawak dan menjadikannya sebagai imej untuk dipaparkan kepada pengguna. Dalam PHP, anda boleh menggunakan perpustakaan GD untuk menjana imej.
Pustaka GD ialah sambungan PHP untuk mencipta imej secara dinamik Ia menyediakan pelbagai fungsi yang boleh digunakan untuk mencipta imej, mengubah suai imej, menyimpan imej dan operasi lain. Imej kod pengesahan boleh dibuat dengan mudah melalui pustaka GD.
Langkah untuk menjana kod pengesahan adalah seperti berikut:
Berikut ialah pelaksanaan kod khusus:
<?php //设置图片大小,这里是120x40 $image_width = 120; $image_height = 40; //创建画布 $image = imagecreatetruecolor($image_width, $image_height); //设置背景色为白色 $bg_color = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $bg_color); //生成随机字符串 $code = ""; $charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $charset_length = strlen($charset); for ($i = 0; $i < 4; $i++) { $rand_index = rand(0, $charset_length - 1); $rand_char = substr($charset, $rand_index, 1); $code .= $rand_char; } //将字符串渲染到图像中 $font_size = 20; $font_color = imagecolorallocate($image, 0, 0, 0); $x = 10; $y = ($image_height - $font_size) / 2; for ($i = 0; $i < 4; $i++) { $char = substr($code, $i, 1); imagettftext($image, $font_size, rand(-10, 10), $x, $y, $font_color, "arial.ttf", $char); $x += $font_size + rand(-5, 5); } //添加干扰线、干扰点等 for ($i = 0; $i < 6; $i++) { $line_color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255)); imageline($image, rand(0, $image_width), rand(0, $image_height), rand(0, $image_width), rand(0, $image_height), $line_color); } for ($i = 0; $i < 50; $i++) { $point_color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255)); imagesetpixel($image, rand(0, $image_width), rand(0, $image_height), $point_color); } //输出图像 header("Content-type:image/png"); imagepng($image); //销毁图像 imagedestroy($image); ?>
Kod di atas akan menjana imej kod pengesahan rawak, dan Paparkannya dalam penyemak imbas. Antaranya, fon Arial, teks hitam, latar belakang putih, 6 garisan gangguan dan 50 titik gangguan digunakan. Boleh disesuaikan mengikut keperluan.
2. Pengesahan kod pengesahan
Selepas menjana imej kod pengesahan, anda perlu membandingkan kod pengesahan yang dimasukkan oleh pengguna dengan kod pengesahan yang dijana untuk mengesahkan sama ada pengguna telah memasukkan yang betul kod pengesahan. Dalam PHP, rentetan kod pengesahan yang dijana boleh disimpan dalam sesi untuk pengesahan seterusnya.
Langkah khusus adalah seperti berikut:
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kod pengesahan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!