PHP シンプルな認証コードの種類: 文字 + 数字、フォントがランダムに歪んでいる
今は色々な認証コードがありますが、認証コードはユーザーが読むものなので、シンプルな方が良いと個人的には思っています。干渉コード、傾斜、複雑な背景はすべてユーザーにとって一種の拷問です。
より優れたエクスペリエンスを備えた大規模な Web サイトをいくつか見たことがありますが、検証コードは比較的シンプルで、複雑な背景や干渉コード、背景はありません。
文章が良くない点があれば、批判やアドバイスをいただければ幸いです。
<?php if (!defined('IS_INITPHP')) exit('Access Denied!'); /********************************************************************************* * InitPHP 2.0 国产PHP开发框架 扩展类库-验证码 *------------------------------------------- * 版权所有: CopyRight By initphp.com * 您可以自由使用该源码,但是在使用过程中,请保留作者信息。尊重他人劳动成果就是尊重自己 *------------------------------------------- * $Author:liuxinming * $Dtime:2012-10-09 ***********************************************************************************/ class seccodeInit{ private $width; private $height; private $type=0;// 0 字母+数字验证码 private $time=3000;//验证码过期时间(s) private $color=null;//验证码字体颜色 private $im; private $length=4;//验证码长度 private $warping;//随机扭曲 /** * 获取随机数值 * @return string */ private function get_random_val() { $i=0; while($i<$this->length) { mt_srand((double)microtime()*1000000); $randnum=mt_rand(50,90); if(!in_array($randnum,array(58,59,60,61,62,63,64,73,79))) { $authnum=$authnum.chr($randnum); $i++; } } session_start(); $time=time(); $checkcode=md5(md5($authnum.'initphpYzmsy'.$time)); $key=$time.','.$checkcode.','.authnum; $_SESSION['initphp_code'] = $key; return $authnum; } /** * 获取验证码图片 * @param $width 宽 * @param $height 高 * @param $warping 字体随机扭曲开关 0=关,1=开 * @return string */ public function getcode($width=140,$height=40,$warping=0){ $this->width=$width; $this->height=$height; $this->warping=$warping; if($this->typeimage(); } } /** * 生成图片验证码 * @return string */ public function image(){ $this->im=imagecreate($this->width, $this->height);//设置图片背景大小 imagecolorallocate($this->im, 243, 251, 254);// 设置背景 $this->color=imagecolorallocate($this->im, mt_rand(1,120), mt_rand(1,120), mt_rand(1,120));// 验证码字体随机颜色 $ttfPath = dirname(__FILE__) . '/font/';//字体目录 $dirs = opendir($ttfPath); $seccodettf = array(); while($entry = readdir($dirs)) { if($entry != '.' && $entry != '..' && in_array(strtolower(addslashes(strtolower(substr(strrchr($entry, '.'), 1, 10)))), array('ttf', 'ttc'))) { $seccodettf[] = $ttfPath.$entry; } } $ttf = $seccodettf[array_rand($seccodettf)];//随机一种字体 $size = $this->type ? $this->width / 7 : $this->width / 6;//字体大小 imagettftext($this->im,$size, 0, 10, $size*1.2, $this->color, $ttf, $this->get_random_val());//设置验证码字符 if($this->warping){//随机扭曲 $this->setWarping(); } if(function_exists("imagepng")) { header ("Content-type: image/png"); $code=imagepng($this->im); }elseif (function_exists("imagejpeg")) { header ("Content-type: image/jpeg"); $code=imagejpeg($this->im); }elseif (function_exists("imagegif")) { header("Content-type: image/gif"); $code=imagegif($this->im); } imagedestroy($this->im); return $code; } /** * 检查验证码 * @param $code * @return bool */ public function checkCode($code) { session_start(); $secode=explode(',', $_SESSION['initphp_code']); $time=time(); //检查时间是否过期 if($secode[0]>$time||$time-$secode[0]>$this->time) { return false; } //验证码密钥 双md5 后是否一致 if($secode[1]md5(md5($code.'initphpYzmsy'.$secode[0]))){ return false; } //检查验证码字符串是否一致 if($code||$code$secode[2]) { return false; } return true; } /*随机扭曲*/ public function setWarping(){ $rgb=array(); $direct=rand(0,1); $width = imagesx($this->im); $height = imagesy($this->im); $level=$width /20; for($j = 0;$j im, $i , $j); } for($i = 0;$i im, $i + $r , $j , $rgb[$i]); } } } } ?>
効果:

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果,其目的是封装一段可重复使用的代码,提高代码的可重用性和可维护性。

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

第1部分:初始故障排除步骤检查苹果的系统状态:在深入研究复杂的解决方案之前,让我们从基础知识开始。问题可能不在于您的设备;苹果的服务器可能会关闭。访问Apple的系统状态页面,查看AppStore是否正常工作。如果有问题,您所能做的就是等待Apple修复它。检查您的互联网连接:确保您拥有稳定的互联网连接,因为“无法连接到AppStore”问题有时可归因于连接不良。尝试在Wi-Fi和移动数据之间切换或重置网络设置(“常规”>“重置”>“重置网络设置”>设置)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code<form name="myform"

在本文中,我们将了解enumerate()函数以及Python中“enumerate()”函数的用途。什么是enumerate()函数?Python的enumerate()函数接受数据集合作为参数并返回一个枚举对象。枚举对象以键值对的形式返回。key是每个item对应的索引,value是items。语法enumerate(iterable,start)参数iterable-传入的数据集合可以作为枚举对象返回,称为iterablestart-顾名思义,枚举对象的起始索引由start定义。如果我们忽

MySQL.proc表的作用和功能详解MySQL是一种流行的关系型数据库管理系统,开发者在使用MySQL时常常会涉及到存储过程(StoredProcedure)的创建和管理。而MySQL.proc表则是一个非常重要的系统表,它存储了数据库中所有的存储过程的相关信息,包括存储过程的名称、定义、参数等。在本文中,我们将详细解释MySQL.proc表的作用和功能

什么是AMP币?AMP代币是由Synereo团队于2015年创立,作为Synereo平台的主要交易货币。AMP代币旨在通过多种功能和用途,为用户提供更好的数字经济体验。AMP代币的用途AMP代币在Synereo平台中拥有多重角色和功能。首先,作为平台的加密货币奖励系统的一部分,用户能够通过分享和推广内容来获得AMP奖励,这一机制鼓励用户更积极地参与平台的活动。AMP代币还可用于在Synereo平台上推广和传播内容。用户可以通过使用AMP代币提升他们的内容在平台上的曝光率,以吸引更多观众来查看和分


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
