GD庫產生圖片驗證碼
對於驗證碼,我們並不陌生,隨處可見,例如:登入註冊、論壇灌水、刷票、密碼破解等,主要作用是屏蔽機器請求,保障業務不受機器提交請求幹擾。
下面就來寫一個驗證碼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="/static/imghw/default1.png" data-src="code.php?r=<?php echo rand()? alt="GD庫產生圖片驗證碼" >" class="lazy" 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);
以上是GD庫產生圖片驗證碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

一、什麼是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庫教學:如何為圖片添加模糊效果概述:在網頁開發中,經常需要對圖片進行處理,其中之一就是添加模糊效果。 PHP提供了強大的GD函式庫,讓我們輕鬆實現圖片的模糊處理。本教學將介紹如何使用PHP和GD庫為圖片添加模糊效果,並附帶程式碼範例。步驟一:設定GD庫要使用GD庫,我們要確保PHP已經啟用了GD庫。可以透過以下程式碼檢查GD庫是否已經啟用:if(

利用PHP和GD庫實現圖片旋轉的方法圖片旋轉是一個常見的影像處理需求,透過旋轉圖片可以實現一些特殊的效果或滿足使用者需求。在PHP中,可以藉助GD庫來實現圖片旋轉功能。本文將介紹如何使用PHP和GD庫來實現圖片旋轉,並附帶程式碼範例。首先,確保你的PHP環境已經安裝了GD庫拓展。在命令列中輸入php-m,查看是否有gd模組,如果沒有則需要先安裝。下面是一個簡單

利用PHP和GD庫實現圓角圖片的方法介紹在網頁設計中,有時需要使用圓角圖片來美化頁面的外觀。本文將介紹如何使用PHP和GD函式庫來實現圓角圖片的方法。 GD庫是PHP擴充庫之一,提供了一系列處理影像的函數。透過使用GD庫,我們可以對圖片進行裁剪、調整尺寸、添加濾鏡等操作。而要實現圓角圖片,我們需要利用GD庫中的一些函數進行影像的處理。步驟以下是實現圓角圖片的具體步

標題:使用PHP和GD庫建立圖像縮圖的步驟引言:在Web開發中,圖像常常需要進行縮略處理以適應不同的頁面佈局。本文將介紹如何使用PHP和GD庫來建立圖像縮圖的步驟,並附上相關程式碼範例。一、安裝和設定GD庫GD庫是一個用於影像處理的函式庫,可以使用一些簡單的函數來處理影像。在開始之前,我們需要確保GD庫已正確安裝和設定。檢查GD庫是否已經安裝:在PHP腳本中執

PHP和GD庫實現圖片裁剪的方法概述:圖片裁剪是網頁開發中常見的需求之一,它可以用於調整圖片的尺寸,剪裁不需要的部分,以適應不同的頁面佈局和展示需求。在PHP開發中,我們可以藉助GD函式庫來實現圖片裁切的功能。 GD庫是一個強大的圖形庫,可提供一系列函數來處理和操控影像。程式碼範例:以下我們將詳細介紹如何使用PHP和GD庫來實作圖片裁切。首先,確保你的PHP環境已經

利用PHP和GD庫產生隨機背景圖片隨機背景圖片在網頁設計中起著重要的作用,可以增加頁面的美觀性和吸引力。本文將介紹如何使用PHP和GD庫來產生隨機背景圖。 GD庫是一個用於影像處理的PHP擴充模組,可在PHP中建立、編輯和操作影像。透過結合GD庫的強大功能,我們可以輕鬆地產生各種風格的隨機背景圖片。首先,我們需要在伺服器上安裝GD庫。你可以透過以下命令來檢
