Rumah pembangunan bahagian belakang tutorial php GD库生成图片验证码

GD库生成图片验证码

Oct 22, 2019 pm 01:32 PM
perpustakaan gd

对于验证码,我们并不陌生,随处可见,比如:登录注册、论坛灌水、刷票、密码破解等,主要作用是屏蔽机器请求,保障业务不受机器提交请求干扰。

下面就来写一个验证码demo,使用最常见的字母加数字验证码,加上干扰点和干扰线,使用的GD库生成的,如果你没有安装的话,请自行谷歌安装,另如何判断是否安装启用,请直接在phpinfo页面搜GD库即可

效果如下图:

5ed6c1cb4851a1d7da179d4b1ffa844.png

前台页面

<?php
if(isset($_REQUEST["code"])){
    session_start();
    if(strtolower($_POST["code"])==$_SESSION["code"]){
        echo "<script>alert(&#39;正确!&#39;)</script>";
    }else{
        echo "<script>alert(&#39;错误!&#39;)</script>";
    }
}
?>
<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>验证码</title>
    <style>
        #code{
            border: 1px solid #ccc;
            vertical-align: bottom;
        }
        #refresh{
            text-decoration: none;
            font-size: .875em;
        }
    </style>
</head>
<body>
<form action="" method="post">
    <p>
        验证码:
        <img src="code.php?r=<?php echo rand()?>" alt="" id="code">
        <a href="javascript:;" id="refresh">看不清?</a>
    </p>
    <p>
        输入验证码:
        <input type="text" name="code">
    </p>
    <input type="submit" value="提交">
    <script>
        document.getElementById("code").onclick = document.getElementById("refresh").onclick = refresh;
        function refresh() {
            document.getElementById(&#39;code&#39;).src=&#39;code.php?r=&#39;+Math.random()
        }
    </script>
</form>
</body>
</html>
Salin selepas log masuk

后台页面

<?php
//启动session
session_start();
$code = "";         //验证码字符串
$str = "qwertyuiopasdfghjklzxcvbnm1234567890";  //验证码字符取值范围[a-z0-9]
$w = 160;           //图片宽度
$h = 40;            //图片高度
$num = 4;           //验证码字符数
$dotNum = 300;      //干扰点个数
$lineNum = rand(3, 5);         //干扰线条数
$font = "./api/DejaVuSansMono.ttf";     //设置字体文件
$image = imagecreatetruecolor($w, $h);  //创建一张指定宽高的图片
$imageColor = imagecolorallocate($image, 255, 255, 255);   //设置背景图片颜色为白色
imagefill($image, 0, 0, $imageColor);  //填充图片背景
//随机验证码,包含字母和数字
for ($i = 0; $i < $num; $i++) {
    $fontColor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120));  //生成随机字体颜色
    $content = substr($str, rand(0, strlen($str)), 1);      //随机取字符集中的值
    $code .= $content;
    $fontSize = rand(15, 25);                    //字体大小
    $x = $i * $w / $num + rand(5, 10);          //指定生成位置X轴偏移量
    $y = rand(20, 30);                          //指定生成位置Y轴偏移量
    imagettftext($image, $fontSize, 0, $x, $y, $fontColor, $font, $content);
}
$_SESSION["code"] = $code;  //保存验证码字符串到session中
//生成干扰点
for ($i = 0; $i < $dotNum; $i++) {
    $dotColor = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
    imagesetpixel($image, rand(0, $w), rand(0, $h), $dotColor);
}
//生成干扰线
for ($i = 0; $i < $lineNum; $i++) {
    $lineColor = imagecolorallocate($image, rand(0, 100), rand(0, 100), rand(0, 100));
    imageline($image, rand(0, $w), rand(0, $h), rand(0, $w), rand(0, $h), $lineColor);
}
header("content-type:image/png");
imagepng($image);
imagedestroy($image);
Salin selepas log masuk

Atas ialah kandungan terperinci GD库生成图片验证码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1659
14
Tutorial PHP
1258
29
Tutorial C#
1232
24
Panduan operasi perpustakaan GD dalam PHP Panduan operasi perpustakaan GD dalam PHP May 20, 2023 pm 02:40 PM

1. Apakah perpustakaan GD? Pustaka GD ialah satu set fungsi perpustakaan untuk mencipta dan memproses pelbagai format imej Ia adalah salah satu perpustakaan pemprosesan imej yang paling biasa digunakan dalam PHP. 2. Pasang perpustakaan GD Pasang pustaka GD di bawah CentOS/RedHat 1. Pasang pustaka sambungan GD PHP yuminstallphp-gd 2. Mulakan semula perkhidmatan pelayan webhttpdrestart 3. Semak versi perpustakaan GD yang disokong oleh PHP php-i|grep-igd dalam Ubunt

Apakah yang perlu saya lakukan jika php tidak dapat membuka perpustakaan gd? Apakah yang perlu saya lakukan jika php tidak dapat membuka perpustakaan gd? Nov 18, 2022 am 10:31 AM

Penyelesaian kepada masalah yang PHP tidak boleh membuka perpustakaan gd: 1. Cari dan buka fail konfigurasi php.ini 2. Alih keluar simbol komen ";" di hadapan "extension_dir"; daripada folder ext.

Bagaimana untuk merealisasikan putaran imej menggunakan perpustakaan PHP dan GD Bagaimana untuk merealisasikan putaran imej menggunakan perpustakaan PHP dan GD Jul 12, 2023 am 11:52 AM

Cara melaksanakan putaran imej menggunakan perpustakaan PHP dan GD Putaran imej ialah keperluan pemprosesan imej biasa Dengan memutar imej, anda boleh mencapai beberapa kesan khas atau memenuhi keperluan pengguna. Dalam PHP, anda boleh menggunakan perpustakaan GD untuk melaksanakan fungsi putaran imej. Artikel ini akan memperkenalkan cara menggunakan PHP dan perpustakaan GD untuk melaksanakan penggiliran imej, dengan contoh kod. Mula-mula, pastikan persekitaran PHP anda mempunyai sambungan perpustakaan GD dipasang. Masukkan php-m pada baris arahan untuk menyemak sama ada terdapat modul gd Jika tidak, anda perlu memasangnya terlebih dahulu. Berikut adalah ringkasnya

Bagaimana untuk merealisasikan imej sudut bulat menggunakan perpustakaan PHP dan GD Bagaimana untuk merealisasikan imej sudut bulat menggunakan perpustakaan PHP dan GD Jul 12, 2023 am 09:21 AM

Pengenalan kepada kaedah merealisasikan imej sudut bulat menggunakan perpustakaan PHP dan GD Dalam reka bentuk web, kadangkala perlu menggunakan imej sudut bulat untuk mencantikkan penampilan halaman. Artikel ini akan memperkenalkan cara menggunakan perpustakaan PHP dan GD untuk melaksanakan imej bulat. Pustaka GD ialah salah satu perpustakaan sambungan PHP dan menyediakan satu siri fungsi untuk memproses imej. Dengan menggunakan perpustakaan GD, kami boleh memangkas, mengubah saiz, menambah penapis, dsb. pada imej. Untuk mencapai imej bulat, kita perlu menggunakan beberapa fungsi dalam perpustakaan GD untuk pemprosesan imej. Berikut ialah langkah khusus untuk mencapai imej sudut bulat.

Tutorial Perpustakaan PHP dan GD: Cara Menambah Kesan Kabur pada Imej Tutorial Perpustakaan PHP dan GD: Cara Menambah Kesan Kabur pada Imej Jul 12, 2023 pm 01:51 PM

Tutorial perpustakaan PHP dan GD: Cara menambah kesan kabur pada imej Gambaran Keseluruhan: Dalam pembangunan web, imej selalunya perlu diproses, dan salah satunya ialah menambah kesan kabur. PHP menyediakan perpustakaan GD yang berkuasa yang membolehkan kami mengaburkan imej dengan mudah. Tutorial ini akan menunjukkan kepada anda cara menambah kesan kabur pada imej menggunakan PHP dan perpustakaan GD, dengan contoh kod. Langkah 1: Sediakan pustaka GD Untuk menggunakan pustaka GD, kita perlu memastikan bahawa pustaka GD telah didayakan dalam PHP. Anda boleh menyemak sama ada pustaka GD telah didayakan melalui kod berikut: if(

Langkah-langkah untuk membuat lakaran kecil imej menggunakan perpustakaan PHP dan GD Langkah-langkah untuk membuat lakaran kecil imej menggunakan perpustakaan PHP dan GD Jul 12, 2023 am 08:03 AM

Tajuk: Langkah-langkah untuk Mencipta Imej Kecil Menggunakan PHP dan Perpustakaan GD Pengenalan: Dalam pembangunan web, imej selalunya perlu dilakaran kecil untuk disesuaikan dengan reka letak halaman yang berbeza. Artikel ini akan memperkenalkan langkah tentang cara menggunakan pustaka PHP dan GD untuk membuat lakaran kenit imej dan melampirkan contoh kod yang berkaitan. 1. Pasang dan konfigurasikan perpustakaan GD Pustaka GD ialah perpustakaan untuk pemprosesan imej Anda boleh menggunakan beberapa fungsi mudah untuk memproses imej. Sebelum kita mula, kita perlu memastikan bahawa perpustakaan GD dipasang dan dikonfigurasikan dengan betul. Semak sama ada pustaka GD telah dipasang: laksanakan dalam skrip PHP

Bagaimana untuk melaksanakan pemangkasan imej menggunakan perpustakaan PHP dan GD Bagaimana untuk melaksanakan pemangkasan imej menggunakan perpustakaan PHP dan GD Jul 14, 2023 am 08:57 AM

Gambaran keseluruhan tentang cara perpustakaan PHP dan GD melaksanakan pemangkasan imej: Pemotongan imej ialah salah satu keperluan biasa dalam pembangunan web Ia boleh digunakan untuk melaraskan saiz imej dan memangkas bahagian yang tidak diperlukan untuk menyesuaikan dengan reka letak halaman dan keperluan paparan yang berbeza. Dalam pembangunan PHP, kita boleh menggunakan perpustakaan GD untuk merealisasikan fungsi pemangkasan imej. Pustaka GD ialah perpustakaan grafik berkuasa yang menyediakan satu siri fungsi untuk memproses dan memanipulasi imej. Contoh kod: Di bawah ini kami akan memperkenalkan secara terperinci cara menggunakan perpustakaan PHP dan GD untuk melaksanakan pemangkasan imej. Pertama, pastikan persekitaran PHP anda mempunyai

Tutorial perpustakaan PHP dan GD: Cara menambah ketelusan pada imej Tutorial perpustakaan PHP dan GD: Cara menambah ketelusan pada imej Jul 13, 2023 am 09:03 AM

Tutorial perpustakaan PHP dan GD: Cara menambah kesan ketelusan pada imej Pengenalan: Dalam reka bentuk web dan pemprosesan imej, kesan ketelusan ialah salah satu kesan yang biasa digunakan. Dalam PHP, kita boleh menggunakan perpustakaan GD untuk menambah ketelusan pada imej. Artikel ini akan memperkenalkan cara menggunakan perpustakaan PHP dan GD untuk menambah kesan ketelusan pada imej, dengan contoh kod. 1. Pengenalan kepada perpustakaan GD Pustaka GD ialah perpustakaan yang digunakan untuk memproses imej Ia menyediakan satu siri fungsi dan alatan yang boleh merealisasikan penjanaan imej, pengubahsuaian, pemangkasan, penskalaan dan operasi lain. dalam PH

See all articles