Bagaimana untuk menjana kod pengesahan dalam PHP

WBOY
Lepaskan: 2023-09-24 11:30:01
asal
1702 orang telah melayarinya

Bagaimana untuk menjana kod pengesahan dalam PHP

Tajuk: Cara menjana kod pengesahan dalam PHP

Dalam pembangunan web, kod pengesahan (captcha) sering digunakan untuk menghalang operasi automasi mesin untuk meningkatkan keselamatan laman web. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menjana kod pengesahan dan menyediakan contoh kod khusus.

1 Prinsip dan proses penjanaan kod pengesahan
Prinsip penjanaan kod pengesahan adalah untuk membenamkan imej yang dijana secara rawak dalam halaman, dan memaparkan teks kod pengesahan yang dihasilkan dan imej ke. pengguna , pengguna perlu memasukkan kod pengesahan dengan betul semasa menghantar borang.

Proses menjana kod pengesahan adalah seperti berikut:

  1. Pelayan menerima permintaan dan mula menjana kod pengesahan; #Pelayan menjana teks Kod pengesahan secara rawak; -halaman akhir;
  2. Pengguna memasukkan kod pengesahan pada halaman bahagian hadapan; dimasukkan oleh pengguna.
  3. 2 Contoh kod untuk menjana kod pengesahan melalui PHP
  4. Berikut ialah contoh kod ringkas yang menunjukkan cara menggunakan PHP untuk menjana kod pengesahan:
  5. rreee#🎜 🎜#3. Gunakan kod pengesahan yang dijana
  6. Di halaman hujung hadapan, anda boleh menggunakan kod HTML berikut untuk memaparkan imej kod pengesahan dan kotak input:
  7. rreee#🎜🎜 #Di bahagian belakang Apabila kod PHP mengendalikan penghantaran borang, anda boleh menggunakan kod berikut untuk mengesahkan sama ada kod pengesahan yang dimasukkan oleh pengguna adalah betul:
  8. <?php
    session_start();  // 开启session,用于保存验证码信息
    
    // 生成验证码文本
    $code = "";
    for($i=0; $i<4; $i++) {
       $code .= chr(rand(97, 122));  // 生成随机小写字母
    }
    
    // 保存验证码文本到会话变量中
    $_SESSION['code'] = $code;
    
    // 绘制验证码图片
    $width = 100;
    $height = 40;
    $image = imagecreatetruecolor($width, $height);
    
    // 创建背景颜色
    $bgColor = imagecolorallocate($image, 255, 255, 255);
    imagefilledrectangle($image, 0, 0, $width, $height, $bgColor);
    
    // 生成验证码文字颜色
    $textColor = imagecolorallocate($image, 0, 0, 0);
    
    // 添加验证码文本到图片
    imagettftext($image, 20, 0, 10, 30, $textColor, 'path/to/arial.ttf', $code);
    
    // 添加干扰线
    for ($i = 0; $i < 5; $i++) {
        $lineColor = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
        imageline($image, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $lineColor);
    }
    
    // 设置响应头,告诉浏览器返回的是图片
    header("Content-type: image/png");
    
    // 输出图片到浏览器
    imagepng($image);
    
    // 销毁图片对象
    imagedestroy($image);
    ?>
    Salin selepas log masuk
Kod di atas menjana kod pengesahan dalam PHP dan mengesahkan kod pengesahan apabila borang diserahkan. Anda boleh menyesuaikan dan mengoptimumkan gaya, panjang, set aksara, dsb. kod pengesahan mengikut keperluan.


Ringkasan:

Artikel ini memperkenalkan cara menjana kod pengesahan dalam PHP dan menyediakan contoh kod khusus. Proses menjana kod pengesahan termasuk langkah-langkah seperti menjana teks kod pengesahan rawak, melukis gambar kod pengesahan dan menyimpan maklumat kod pengesahan. Melalui penggunaan kod pengesahan, keselamatan aplikasi web dapat dipertingkatkan dan operasi automasi mesin dapat dihalang.

Atas ialah kandungan terperinci Bagaimana untuk menjana kod pengesahan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!