Rumah > pembangunan bahagian belakang > tutorial php > Artikel yang menerangkan secara terperinci cara menetapkan kod pengesahan rawak dalam PHP

Artikel yang menerangkan secara terperinci cara menetapkan kod pengesahan rawak dalam PHP

PHPz
Lepaskan: 2023-04-11 13:56:01
asal
1630 orang telah melayarinya

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.

  1. Jana nombor 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);
Salin selepas log masuk

Ini akan menjana integer antara 100000 dan 999999.

  1. Buat imej kod pengesahan

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);
Salin selepas log masuk

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); // 黑色
Salin selepas log masuk

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);
Salin selepas log masuk

Ini akan melukis rentetan captcha pada kedudukan (20,15) imej.

  1. Output imej kod pengesahan

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');
Salin selepas log masuk

Seterusnya, kita boleh menggunakan fungsi imagepng untuk mengeluarkan imej:

imagepng($image);
Salin selepas log masuk

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);
Salin selepas log masuk

Kod di atas akan menghasilkan imej kod pengesahan nombor rawak 6 digit dan mengeluarkannya ke penyemak imbas.

  1. Gunakan kod pengesahan dalam halaman web

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" />
Salin selepas log masuk

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 {
    // 验证码错误,给出错误提示
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan