Rumah > Artikel > pembangunan bahagian belakang > Kemahiran pembangunan PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan
Kemahiran pembangunan PHP: Cara melaksanakan fungsi kod pengesahan
Kod pengesahan (CAPTCHA) ialah teknologi biasa yang digunakan untuk mengesahkan identiti pengguna dan digunakan secara meluas dalam pembangunan laman web. Kod pengesahan boleh menghalang pendaftaran berniat jahat dengan berkesan oleh robot, peretasan kekerasan dan tingkah laku berniat jahat yang lain serta meningkatkan keselamatan tapak web. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan fungsi kod pengesahan dan menyediakan contoh kod khusus.
1. Jana kod pengesahan
Menjana kod pengesahan ialah langkah pertama untuk melaksanakan fungsi kod pengesahan. Kami boleh membuat gambar melalui perpustakaan GD dan melukis aksara kod pengesahan yang dijana secara rawak pada gambar. Berikut ialah contoh kod untuk menjana kod pengesahan:
<?php session_start(); // 随机生成验证码字符 $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $randomString = ''; $length = 6; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, strlen($characters) - 1)]; } // 将验证码字符保存到session中 $_SESSION['captcha'] = $randomString; // 创建验证码图片 $image = imagecreatetruecolor(200, 100); $bgColor = imagecolorallocate($image, 255, 255, 255); $textColor = imagecolorallocate($image, 0, 0, 0); imagefilledrectangle($image, 0, 0, 200, 100, $bgColor); imagettftext($image, 40, 0, 60, 60, $textColor, 'font.ttf', $randomString); header('Content-type: image/png'); imagepng($image); imagedestroy($image); ?>
Dalam kod di atas, mula-mula kami menggunakan fungsi session_start() untuk membuka sesi untuk menyimpan aksara kod pengesahan. Kami kemudian memilih aksara secara rawak melalui gelung, menyimpannya ke dalam pembolehubah $randomString, dan menyimpannya dalam $_SESSION['captcha']. Seterusnya, gunakan fungsi imagecreatetruecolor() untuk mencipta kanvas $image dengan saiz 200x100 piksel, dan tetapkan warna latar belakang dan warna teks. Gunakan fungsi imagefilledrectangle() untuk mengisi kanvas dengan warna putih, dan kemudian gunakan fungsi imagettftext() untuk melukis aksara captcha pada kanvas. Akhir sekali, gunakan fungsi header() untuk menetapkan jenis respons kepada imej/png, dan gunakan fungsi imagepng() untuk mengeluarkan kanvas sebagai imej PNG.
2. Pengesahan kod pengesahan
Selepas menjana kod pengesahan, kami perlu memaparkannya di halaman web dan menyediakan kotak input untuk pengguna memasukkan kod pengesahan. Apabila pengguna menyerahkan borang, kami perlu mengesahkan ketepatan kod pengesahan. Berikut ialah contoh kod untuk pengesahan kod pengesahan:
<?php session_start(); // 获取用户输入的验证码 $userCaptcha = $_POST['captcha']; // 验证码比较(不区分大小写) if (strcasecmp($userCaptcha, $_SESSION['captcha']) == 0) { echo '验证码正确'; } else { echo '验证码错误'; } // 清除session中的验证码 unset($_SESSION['captcha']); ?>
Dalam kod di atas, mula-mula kita menggunakan fungsi session_start() untuk membuka sesi, dan kemudian mendapatkan kod pengesahan $_POST['captcha'] yang dimasukkan oleh pengguna daripada borang yang dihantar oleh pengguna. Kemudian, gunakan fungsi strcasecmp() untuk membandingkan kod pengesahan yang dimasukkan oleh pengguna dengan kod pengesahan yang disimpan dalam sesi. Fungsi strcasecmp() ialah fungsi perbandingan rentetan tidak sensitif huruf besar yang mengembalikan 0 untuk menunjukkan kesamaan dan bukan sifar untuk menunjukkan ketidaksamaan. Keluarkan maklumat yang sepadan berdasarkan hasil perbandingan. Akhir sekali, gunakan fungsi unset() untuk mengosongkan kod pengesahan dalam sesi untuk kegunaan lain kali.
3. Gunakan fungsi kod pengesahan
Berikut ialah contoh kod untuk menggunakan fungsi kod pengesahan:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>验证码示例</title> </head> <body> <form action="verify.php" method="POST"> <img src="captcha.php" alt="验证码"> <input type="text" name="captcha" placeholder="请输入验证码"> <input type="submit" value="提交"> </form> </body> </html>
Dalam kod di atas, kami menggunakan teg dalam borang HTML untuk memaparkan kod pengesahan dan tetapkan kod pengesahan Atribut src bagi imej ialah captcha.php Fail PHP ini digunakan untuk menjana kod pengesahan. Borang ini juga mengandungi kotak input untuk pengguna memasukkan kod pengesahan dan butang hantar. Selepas pengguna memasukkan kod pengesahan dan mengklik butang hantar, borang akan dihantar ke fail verify.php untuk pengesahan kod pengesahan.
Ringkasan
Artikel ini memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan fungsi kod pengesahan dan menyediakan contoh kod khusus. Dengan menjana aksara rawak dan melukis imej kod pengesahan, kami boleh menghalang serangan bot dan pelakon berniat jahat di tapak web dengan berkesan. Apabila menggunakan fungsi kod pengesahan, anda perlu memberi perhatian untuk melindungi keselamatan aksara kod pengesahan untuk mengelakkan mereka daripada diduga oleh program berniat jahat. Saya harap artikel ini dapat membantu anda memahami dan menggunakan fungsi kod pengesahan.
Atas ialah kandungan terperinci Kemahiran pembangunan PHP: Bagaimana untuk melaksanakan fungsi kod pengesahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!