php 验证码程序_PHP
验证码
// -------------------------------------------------------------
// 名称: my_authimg class
//
// 用途: 根据图片数字字母验证
// 实例:
// $ai = new my_authimg();
// $ai->render();
//
// 判断结果是否正确
// $ai = new my_authimg();
// $ai->is_true($str);
//
// @作者: hightman
// @版本: 0.0.0
// @时间: 2005/05/26
// $Id: $
// -------------------------------------------------------------
class my_authimg {
// public var
var $width = 72;
var $height = 20;
var $text_font = 5;
var $text_space = 10;
var $text_length = 5;
var $sess_name = "__auth_xyz_123__";
var $num_only = false;
// private
var $_top = 1;
var $_move = 3;
var $_lines = 5;
function auth_image($params = array()) {
settype($params, "array");
foreach ($params as $key => $value) {
if (isset($this->$key)) {
$this->$key = $value;
}
}
$this->_lines = intval($this->height / 10);
}
function set_sess_name($name = "") {
if (!empty($name)) {
$this->sess_name = $name;
}
}
function set_text_length($length = 5) {
$this->text_length = $length;
}
function set_img_size($width = 100, $height = 15) {
$this->width = $width;
$this->height = $height;
}
function get_sess_value() {
@session_start();
$sess_key = $this->sess_name;
$sess_value = NULL;
if (isset($_SESSION) && isset($_SESSION[$sess_key])) {
$sess_value = $_SESSION[$sess_key];
unset($_SESSION[$sess_key]);
} else {
global $HTTP_SESSION_VARS;
if (isset($HTTP_SESSION_VARS[$sess_key])) {
$sess_value = $HTTP_SESSION_VARS[$sess_key];
session_unregister($this->sess_name);
}
}
if (isset($GLOBALS[$sess_key])) {
unset($GLOBALS[$sess_key]);
}
return $sess_value;
}
function is_true($str) {
$sess_value = $this->get_sess_value();
return (!strcasecmp($sess_value, $str));
}
function render() {
$radix = "123456789";
if (!$this->num_only) {
$radix .= "ABCDEFGHIJKLMNPQRSTUVWXYZ";
}
$radix_len = strlen($radix);
// 种下随机种子
mt_srand();
// 初始化图片
$image = ImageCreate($this->width, $this->height);
// 设定颜色
$r = mt_rand() % 255; //2 ? 255 : 0;
$g = mt_rand() % 255; //2 ? 255 : 0;
$b = mt_rand() % 255; //2 ? 255 : 0;
$fgcolor = ImageColorAllocate($image, $r, $g, $b);
$bgcolor = ImageColorAllocate($image, 255 - $r, 255 - $g, 255 - $b);
$silver = ImageColorAllocate($image, (255 - $r) * 2, (255 - $g) * 2, (255 - $b) * 2);
// 生成背景
ImageFill($image, 0, 0, $bgcolor);
// 画出横向干扰线
$line_space = ceil($this->height / ($this->_lines + 1));
$line_move = ceil($line_space * 2);
for ($i = 1; $i _lines; $i++) {
$y = $line_space * $i;
$y2 = $y + (($i - rand(0, 2 * $i)) % 2) * $line_move;
ImageLine($image, 0, $y, $this->width, $y2, $silver);
}
// 画出干扰点
$pixel_num = intval($this->height * $this->width / 20);
for($i = 0; $i $x = mt_rand() % $this->width;
$y = mt_rand() % $this->height;
ImageSetPixel($image, $x, $y, $silver);
}
// 画出字符
$rand_str = "";
$step_len = intval($this->width / ($this->text_length + 1));
$left_len = $step_len - 6;
for ($i = 0; $i text_length; $i++) {
$x = $left_len + ($step_len * $i);
$y = ($i % 2) * $this->_move + $this->_top;
$rand = mt_rand(0, $radix_len - 1);
$rand_str .= substr($radix, $rand, 1);
ImageString($image, $this->text_font, $x, $y, substr($radix, $rand, 1), $fgcolor);
}
// 设定 SESSION 值
@session_start();
if (isset($_SESSION)) {
$sess_key = $this->sess_name;
$_SESSION[$sess_key] = $rand_str;
}
else {
session_register($this->sess_name, $rand_str);
}
// 输出图象
header("Content-type: image/png");
ImagePNG($image);
ImageDestroy($image);
}
}
?>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

La carte par défaut sur l'iPhone est Maps, le fournisseur de géolocalisation propriétaire d'Apple. Même si la carte s’améliore, elle ne fonctionne pas bien en dehors des États-Unis. Il n'a rien à offrir par rapport à Google Maps. Dans cet article, nous discutons des étapes réalisables pour utiliser Google Maps afin de devenir la carte par défaut sur votre iPhone. Comment faire de Google Maps la carte par défaut sur iPhone Définir Google Maps comme application cartographique par défaut sur votre téléphone est plus facile que vous ne le pensez. Suivez les étapes ci-dessous – Étapes préalables – Vous devez avoir Gmail installé sur votre téléphone. Étape 1 – Ouvrez l'AppStore. Étape 2 – Recherchez « Gmail ». Étape 3 – Cliquez à côté de l'application Gmail

Nous recevons généralement des fichiers PDF du gouvernement ou d'autres agences, certains avec des signatures numériques. Après avoir vérifié la signature, nous voyons le message SignatureValid et une coche verte. Si la signature n'est pas vérifiée, la validité est inconnue. La vérification des signatures est importante, voyons comment le faire en PDF. Comment vérifier les signatures au format PDF La vérification des signatures au format PDF le rend plus fiable et le document est plus susceptible d'être accepté. Vous pouvez vérifier les signatures dans les documents PDF des manières suivantes. Ouvrez le PDF dans Adobe Reader Cliquez avec le bouton droit sur la signature et sélectionnez Afficher les propriétés de la signature Cliquez sur le bouton Afficher le certificat du signataire Ajoutez la signature à la liste des certificats de confiance à partir de l'onglet Confiance Cliquez sur Vérifier la signature pour terminer la vérification.

1. Après avoir ouvert WeChat, cliquez sur l'icône de recherche, entrez dans l'équipe WeChat et cliquez sur le service ci-dessous pour entrer. 2. Après avoir entré, cliquez sur l'option outil libre-service dans le coin inférieur gauche. 3. Après avoir cliqué, dans les options ci-dessus, cliquez sur l'option de déblocage/appel pour vérification auxiliaire.

Quelle carte graphique est bonne pour le Core i73770 ? La RTX3070 est une carte graphique très puissante avec d'excellentes performances et une technologie avancée. Que vous jouiez à des jeux, rendiez des graphiques ou effectuiez du machine learning, le RTX3070 peut le gérer facilement. Il utilise l'architecture Ampere de NVIDIA, dispose de 5888 cœurs CUDA et de 8 Go de mémoire GDDR6, ce qui peut offrir une expérience de jeu fluide et des effets graphiques de haute qualité. Le RTX3070 prend également en charge la technologie de lancer de rayons, qui peut présenter des effets de lumière et d'ombre réalistes. Dans l’ensemble, la RTX3070 est une carte graphique puissante et avancée adaptée à ceux qui recherchent des performances et une qualité élevées. RTX3070 est une carte graphique de la série NVIDIA. Utilisation de NVIDIA de 2e génération

L'application horloge est-elle absente de votre téléphone ? La date et l'heure apparaîtront toujours sur la barre d'état de votre iPhone. Cependant, sans l'application Horloge, vous ne pourrez pas utiliser l'horloge mondiale, le chronomètre, le réveil et bien d'autres fonctionnalités. Par conséquent, réparer l’application d’horloge manquante devrait figurer en haut de votre liste de tâches. Ces solutions peuvent vous aider à résoudre ce problème. Correctif 1 – Placer l’application Horloge Si vous avez supprimé par erreur l’application Horloge de votre écran d’accueil, vous pouvez remettre l’application Horloge à sa place. Étape 1 – Déverrouillez votre iPhone et commencez à faire glisser votre doigt vers la gauche jusqu'à atteindre la page Bibliothèque d'applications. Étape 2 – Ensuite, recherchez « horloge » dans le champ de recherche. Étape 3 – Lorsque vous voyez « Horloge » ci-dessous dans les résultats de recherche, maintenez-la enfoncée et

C++ est un langage de programmation largement utilisé qui est très pratique pour écrire des programmes de compte à rebours. Le programme de compte à rebours est une application courante qui peut nous fournir des fonctions de calcul du temps et de compte à rebours très précises. Cet article explique comment utiliser C++ pour écrire un programme de compte à rebours simple. La clé pour mettre en œuvre un programme de compte à rebours est d’utiliser une minuterie pour calculer le passage du temps. En C++, nous pouvons utiliser les fonctions du fichier d'en-tête time.h pour implémenter la fonction timer. Ce qui suit est le code d'un simple programme de compte à rebours

Visitez-vous fréquemment le même site Web à peu près à la même heure chaque jour ? Cela peut conduire à passer beaucoup de temps avec plusieurs onglets de navigateur ouverts et à encombrer le navigateur lors de l'exécution des tâches quotidiennes. Eh bien, que diriez-vous de l’ouvrir sans avoir à lancer le navigateur manuellement ? C'est très simple et ne nécessite pas de télécharger d'applications tierces, comme indiqué ci-dessous. Comment configurer le Planificateur de tâches pour ouvrir un site Web ? Appuyez sur la touche , tapez Planificateur de tâches dans la zone de recherche, puis cliquez sur Ouvrir. Windows Dans la barre latérale droite, cliquez sur l'option Créer une tâche de base. Dans le champ Nom, saisissez le nom du site Web que vous souhaitez ouvrir et cliquez sur Suivant. Ensuite, sous Déclencheurs, cliquez sur Fréquence temporelle, puis sur Suivant. Sélectionnez la durée pendant laquelle vous souhaitez que l'événement se répète et cliquez sur Suivant. Sélectionnez activer

Dans iOS 17, Apple a non seulement ajouté plusieurs nouvelles fonctionnalités de messagerie, mais a également modifié la conception de l'application Messages pour lui donner un aspect plus épuré. Toutes les applications et outils iMessage, tels que les options d'appareil photo et de photo, sont désormais accessibles en appuyant sur le bouton "+" au-dessus du clavier et à gauche du champ de saisie de texte. Cliquer sur le bouton "+" fait apparaître une colonne de menu avec un ordre d'options par défaut. En partant du haut, il y a l'appareil photo, les photos, les autocollants, l'argent liquide (si disponible), l'audio et l'emplacement. Tout en bas se trouve un bouton « Plus » qui, lorsque vous appuyez dessus, révèle toutes les autres applications de messagerie installées (vous pouvez également faire glisser votre doigt vers le haut pour révéler cette liste cachée). Comment réorganiser votre application iMessage Vous pouvez le faire en suivant
