对于验证码,我们并不陌生,随处可见,比如:登录注册、论坛灌水、刷票、密码破解等,主要作用是屏蔽机器请求,保障业务不受机器提交请求干扰。
下面就来写一个验证码demo,使用最常见的字母加数字验证码,加上干扰点和干扰线,使用的GD库生成的,如果你没有安装的话,请自行谷歌安装,另如何判断是否安装启用,请直接在phpinfo页面搜GD库即可
效果如下图:
前台页面
<?php if(isset($_REQUEST["code"])){ session_start(); if(strtolower($_POST["code"])==$_SESSION["code"]){ echo "<script>alert('正确!')</script>"; }else{ echo "<script>alert('错误!')</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('code').src='code.php?r='+Math.random() } </script> </form> </body> </html>
后台页面
<?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);
Atas ialah kandungan terperinci GD库生成图片验证码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

一、什么是GD库?GD库是一组用于创建和处理各种图像格式的库函数,是PHP中最为常用的图像处理库之一。二、安装GD库在CentOS/RedHat下安装GD库1.安装PHP的GD扩展库yuminstallphp-gd2.重启web服务器servicehttpdrestart3.查看PHP支持的GD库版本php-i|grep-igd在Ubunt

php无法开启gd库的解决办法:1、找到并打开php.ini配置文件;2、将“extension_dir”前面的注释符号“;”去掉;3、将其值改为ext文件夹的绝对路径即可。

标题:使用PHP和GD库创建图像缩略图的步骤引言:在Web开发中,图像常常需要进行缩略处理以适应不同的页面布局。本文将介绍如何使用PHP和GD库来创建图像缩略图的步骤,并附上相关代码示例。一、安装和配置GD库GD库是一个用于图像处理的库,可以使用一些简单的函数来处理图像。在开始之前,我们需要确保GD库已正确安装和配置。检查GD库是否已经安装:在PHP脚本中执

利用PHP和GD库实现圆角图片的方法介绍在网页设计中,有时需要使用圆角图片来美化页面的外观。本文将介绍如何使用PHP和GD库来实现圆角图片的方法。GD库是PHP扩展库之一,提供了一系列处理图像的函数。通过使用GD库,我们可以对图片进行裁剪、调整尺寸、添加滤镜等操作。而要实现圆角图片,我们需要利用GD库中的一些函数进行图像的处理。步骤以下是实现圆角图片的具体步

利用PHP和GD库实现图片旋转的方法图片旋转是一个常见的图像处理需求,通过旋转图片可以实现一些特殊的效果或满足用户需求。在PHP中,可以借助GD库来实现图片旋转功能。本文将介绍如何使用PHP和GD库来实现图片旋转,并附带代码示例。首先,确保你的PHP环境已经安装了GD库拓展。在命令行中输入php-m,查看是否有gd模块,如果没有则需要先安装。下面是一个简单

PHP和GD库实现图片裁剪的方法概述:图片裁剪是网页开发中常见的需求之一,它可以用于调整图片的尺寸,剪裁不需要的部分,以适应不同的页面布局和展示需求。在PHP开发中,我们可以借助GD库来实现图片裁剪的功能。GD库是一个强大的图形库,可提供一系列函数来处理和操控图像。代码示例:下面我们将详细介绍如何使用PHP和GD库来实现图片裁剪。首先,确保你的PHP环境已经

PHP和GD库指南:如何根据像素绘制图形引言:在Web开发中,经常需要使用图形来增强用户界面或显示特定的数据。PHP是一种流行的服务器端编程语言,它提供了GD库来处理图像。本文将详细介绍如何使用PHP和GD库根据像素绘制各种图形,并附带代码示例。内容:一、准备工作:在开始之前,请确保你已经安装了PHP和GD库。可以通过以下命令来检查是否安装:php-m|

利用PHP和GD库生成随机背景图片随机背景图片在网页设计中起着重要的作用,可以增加页面的美观性和吸引力。本文将介绍如何使用PHP和GD库来生成随机背景图片。GD库是一个用于图像处理的PHP扩展模块,可以在PHP中创建、编辑和操作图像。通过结合GD库的强大功能,我们可以轻松地生成各种风格的随机背景图片。首先,我们需要在服务器上安装GD库。你可以通过以下命令来检


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.
