README-CAPTCHA

Fichier: README-CAPTCHA.md | Taille: 4.58 KB | Modifié: 09/10/2025 15:13

CAPTCHA Mathématique - Proinfo83

Description

Le CAPTCHA mathématique est un systÚme de vérification anti-robot qui génÚre automatiquement des calculs mathématiques simples que l'utilisateur doit résoudre pour soumettre un formulaire.

Fonctionnement

Génération automatique

  • OpĂ©rations supportĂ©es : Addition (+), Soustraction (-), Multiplication (×)
  • Nombres utilisĂ©s :

- Addition/Soustraction : 1 Ă  20

- Multiplication : 1 à 10 (pour éviter des calculs trop complexes)

  • GĂ©nĂ©ration : Un nouveau calcul est gĂ©nĂ©rĂ© Ă  chaque chargement de page

Interface utilisateur

  • Affichage du calcul dans un format clair : 5 + 3 = ?
  • Bouton de rafraĂźchissement pour gĂ©nĂ©rer un nouveau calcul
  • Champ de saisie numĂ©rique pour la rĂ©ponse
  • Message d'erreur si la rĂ©ponse est incorrecte
  • Validation en temps rĂ©el

Sécurité

  • Le rĂ©sultat correct est stockĂ© dans un champ cachĂ©
  • Validation cĂŽtĂ© client avant soumission du formulaire
  • EmpĂȘche la soumission si le CAPTCHA est incorrect

Implémentation

Fichiers concernés

  • assets/js/script.js : Fonction initCaptcha() et logique du CAPTCHA
  • pages/contact.html : Formulaire de contact avec CAPTCHA
  • pages/devis.html : Formulaire de devis avec CAPTCHA

Structure HTML requise

```html

Veuillez résoudre ce calcul :

Cette vérification nous aide à nous protéger contre les robots spammeurs.

```

Initialisation automatique

Le CAPTCHA s'initialise automatiquement sur toutes les pages qui incluent assets/js/script.js et qui ont les éléments HTML requis.

Personnalisation

Modifier les opérations

Pour ajouter ou modifier les opérations mathématiques, éditez la variable operations dans la fonction generateCaptcha() :

```javascript

const operations = [

{ op: '+', func: (a, b) => a + b },

{ op: '-', func: (a, b) => a - b },

{ op: '×', func: (a, b) => a * b },

{ op: 'Ă·', func: (a, b) => Math.floor(a / b) } // Exemple d'ajout de division

];

```

Modifier les plages de nombres

Ajustez les valeurs dans les conditions pour modifier la difficulté :

```javascript

if (operation.op === '×') {

num1 = Math.floor(Math.random() * 15) + 1; // 1 Ă  15 au lieu de 1 Ă  10

num2 = Math.floor(Math.random() * 15) + 1;

} else {

num1 = Math.floor(Math.random() * 30) + 1; // 1 Ă  30 au lieu de 1 Ă  20

num2 = Math.floor(Math.random() * 30) + 1;

}

```

Dépannage

Le CAPTCHA ne s'affiche pas

  1. Vérifiez que assets/js/script.js est bien inclus
  2. Vérifiez que tous les IDs HTML sont présents et corrects
  3. Ouvrez la console du navigateur pour vérifier les erreurs JavaScript

Le CAPTCHA ne valide pas

  1. Vérifiez que le champ caché captcha-value est bien présent
  2. Vérifiez que la fonction initCaptcha() est appelée
  3. Testez avec des calculs simples pour vérifier la logique

ProblĂšmes de style

  1. Vérifiez que Bootstrap CSS est bien chargé
  2. Vérifiez que les classes CSS sont correctement appliquées
  3. Inspectez les éléments avec les outils de développement du navigateur

Compatibilité

  • Navigateurs modernes : Chrome, Firefox, Safari, Edge (versions rĂ©centes)
  • Navigateurs anciens : Support limitĂ©, fallback vers validation basique
  • Mobile : Compatible avec tous les appareils tactiles
  • AccessibilitĂ© : Labels appropriĂ©s et messages d'erreur clairs