php实现的数字验证码及数字运算验证码_PHP
php
数値認証コード
本文实例讲述了php实现的数字验证码及数字运算验证码。分享给大家供大家参考。具体如下:
1. 数字验证码:
<?php //第一个实例是数字验证码,最常见的验证码。多少个数字可以由自己决定。 //$num是生成的验证码包含几个数字 getValidate(4,60,20); function getValidate($num,$w,$h){ $code = ""; for($i=0;$i<$num;$i++){ $code .= rand(0,9); } //code变量最后是$num个数字,并且是字符串。因袭如果是生成四位的数字验证码,可以用rand(1000,9999)生成 Header("Content-type:image/PNG"); $img = imagecreate($w,$h);//创建图片,长宽参数是一开始定义好的。 $black = imagecolorallocate($img,0,0,0);//定义黑色 $gray = imagecolorallocate($img,200,200,200);//定义灰色 $bgcolor = imagecolorallocate($img,255,255,255);//背景色白色 imagefill($img,0,0,$gray); //imagefill($image,ing $x,int $y,int $color),在image图像的坐标x,y处用color颜色执行区域填充 //给验证码画上边框,感觉验证码美美的,其实呢画边框就是给他画上一个矩形 imagerectangle($img,0,0,$w-1,$h-1,$black);//用黑色的框框 /*imagestring($image,$font,$x,$y,$s,$col) 用col颜色将字符串s画到image所代表的图像的x,y处(xy是字符串的左上角坐标), 整幅图像的左上角为(0,0)如果font是1,2,3,4,5则使用内置字体*/ //一下是画四个数字的方法,让四个字符位置都随机等 $strx = rand(5,10); for($i = 0;$i < $num;$i++){ $strops = rand(1,6); imagestring($img,5,$strx,$strops,substr($code,$i,1),$black); $strx += rand(8,12); //strx是横坐标,需要每一次加上之前的坐标,保证不会重叠。纵坐标不管 } //substr() 函数返回字符串的一部分,substr(string,start,length),要截取的字符串,start开始位置,length截取的长度 //生成好了数字,下面要给验证码区域一些干扰,防止一些工具可以自动识别 //1.方法一:给背景加上很多噪点 //imagesetpixel($image,$x,$y,$color),在image图像中用color颜色在x,y坐标(图像左上角为0,0)上画一个点 for($i = 0;$i<80;$i++){ imagesetpixel($img, rand(0,$w), rand(0,$h), $black);//这些点分布在这个背景里面 } //2.方法二:绘制几条虚线 $style = array($black,$gray); imagesetstyle($img, $style); //imagesetstyle($image,$style),设定画线的风格,像素组成的数组 $y1 = rand(0,$h); $y2 = rand(0,$h); $y3 = rand(0,$h); $y4 = rand(0,$h); imageline($img,0,$y1,$w,$y2,IMG_COLOR_STYLED); imageline($img,0,$y3,$w,$y4,IMG_COLOR_STYLED); imagepng($img); imagedestroy($img); } ?>
ログイン後にコピー
2. 数字运算验证码:
<?php getValidate(100,30); function getValidate($w,$h){ $img = imagecreate($w,$h); $gray = imagecolorallocate($img,255,255,255); $black = imagecolorallocate($img,rand(0,200),rand(0,200),rand(0,200)); $red = imagecolorallocate($img, 255, 0, 0); $white = imagecolorallocate($img, 255, 255, 255); $green = imagecolorallocate($img, 0, 255, 0); $blue = imagecolorallocate($img, 0, 0, 255); imagefilledrectangle($img, 0, 0, 100, 30, $black); for($i = 0;$i < 80;$i++){ imagesetpixel($img, rand(0,$w), rand(0,$h), $gray); } $num1 = rand(1,99); $num2 = rand(1,99); imagestring($img, 5, 5, rand(1,10), $num1, $red); imagestring($img,5,30,rand(1,10),getRand(), $white); imagestring($img,5,45,rand(1,10),$num2, $green); imagestring($img,5,65,rand(1,10),"=", $blue); imagestring($img,5,80,rand(1,10),"?", $red); header("content-type:image/png"); imagepng($img); imagedestroy($img); } function getRand(){ $code = rand(0,1); switch ($code) { case 0: return "+"; break; case 1: return "-"; break; default: # code... break; } } ?>
ログイン後にコピー
希望本文所述对大家的php程序设计有所帮助。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
2週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
1 か月前
By DDD
R.E.P.O.ファイルの保存場所:それはどこにあり、それを保護する方法は?
1 か月前
By DDD
R.E.P.O.最高のグラフィック設定
2週間前
By 尊渡假赌尊渡假赌尊渡假赌
アサシンのクリードシャドウズ:シーシェルリドルソリューション
1週間前
By DDD

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7395
15


Java チュートリアル
1630
14


CakePHP チュートリアル
1358
52


Laravel チュートリアル
1268
25


PHP チュートリアル
1217
29



PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。
