Kod pengesahan rawak digunakan secara meluas dalam fungsi pendaftaran, log masuk dan mendapatkan kata laluan banyak tapak web. Ia boleh menghalang serangan berniat jahat dan serangan robot dengan berkesan, meningkatkan keselamatan tapak web. Sebagai bahasa skrip pelayan yang popular, PHP boleh melaksanakan kod pengesahan rawak dengan mudah.
Di bawah ini kami akan memperkenalkan secara terperinci cara menggunakan PHP untuk menjana kod pengesahan rawak.
Pertama, kita perlu menjana nombor rawak. Ini boleh dicapai menggunakan fungsi rand dalam PHP. Fungsi rand menerima dua parameter: nilai permulaan dan nilai akhir. Sebagai contoh, jika kita ingin menjana nombor rawak 6 digit, kita boleh menggunakan kod berikut:
$code = rand(100000, 999999);
Ini akan menjana integer antara 100000 dan 999999.
Seterusnya, kita perlu melukis kod pengesahan pada imej. Kita boleh mencipta imej menggunakan perpustakaan GD dalam PHP.
Pertama, kita perlu mencipta imej kosong:
$image = imagecreate(100, 50);
Ini akan menghasilkan imej kosong 100x50.
Seterusnya, kita perlu menentukan warna latar belakang dan warna fon imej:
$bg_color = imagecolorallocate($image, 255, 255, 255); // 白色 $text_color = imagecolorallocate($image, 0, 0, 0); // 黑色
Ini akan menentukan warna latar belakang dan warna fon imej masing-masing.
Seterusnya, kita boleh menggunakan fungsi rentetan imej untuk melukis captcha pada imej:
imagestring($image, 5, 20, 15, $code, $text_color);
Ini akan melukis rentetan captcha pada kedudukan (20,15) imej.
Kami telah menjana imej kod pengesahan dan kini perlu mengeluarkannya ke penyemak imbas.
Pertama, kita perlu memberitahu penyemak imbas bahawa apa yang akan kita keluarkan ialah imej:
header('Content-Type: image/png');
Seterusnya, kita boleh menggunakan fungsi imagepng untuk mengeluarkan imej:
imagepng($image);
Kod lengkap adalah seperti berikut:
$code = rand(100000, 999999); $image = imagecreate(100, 50); $bg_color = imagecolorallocate($image, 255, 255, 255); // 白色 $text_color = imagecolorallocate($image, 0, 0, 0); // 黑色 imagestring($image, 5, 20, 15, $code, $text_color); header('Content-Type: image/png'); imagepng($image);
Kod di atas akan menghasilkan imej kod pengesahan nombor rawak 6 digit dan mengeluarkannya ke penyemak imbas.
Akhir sekali, kami perlu membenamkan imej kod pengesahan yang dijana ke dalam halaman web.
Anda boleh memaparkan imej kod pengesahan melalui kod berikut:
<img src="captcha.php" />
Ini akan memaparkan imej kod pengesahan dalam halaman web, di mana captcha.php ialah nama fail PHP yang menjana imej kod pengesahan.
Apabila pengguna mengisi kod pengesahan dan menyerahkan borang, kami perlu mengesahkan sama ada kod pengesahan yang dimasukkan oleh pengguna adalah betul. Ini boleh disahkan dengan kod berikut:
session_start(); if (isset($_POST['code']) && $_POST['code'] == $_SESSION['code']) { // 验证码正确,继续执行 } else { // 验证码错误,给出错误提示 }
Ini akan menyemak sama ada borang yang diserahkan mengandungi parameter bernama kod dan membandingkannya dengan kod pengesahan yang disimpan dalam sesi. Jika kod pengesahan yang dimasukkan adalah konsisten dengan kod pengesahan dalam sesi, pengguna dibenarkan untuk meneruskan operasi berkaitan jika tidak, mesej ralat akan diberikan.
Ringkasan
Menggunakan PHP untuk menjana kod pengesahan rawak tidaklah rumit Anda hanya perlu menggunakan penjanaan nombor rawak mudah dan perpustakaan GD untuk melukis gambar. Melalui penggunaan kod pengesahan, keselamatan dan kebolehpercayaan tapak web dapat dipertingkatkan dengan berkesan.
Atas ialah kandungan terperinci Artikel yang menerangkan secara terperinci cara menetapkan kod pengesahan rawak dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!