New Version V2
# Générateur de Code QR Multi-Type
Application web professionnelle et complète pour générer **9 types différents** de codes QR avec interface moderne, personnalisation avancée et statistiques de vues.
##

Fonctionnalités Principales
###

9 Types de Codes QR Supportés
-

**Texte** - Messages et citations
-

**Lien Web** - URLs avec validation
-

**Email** - Courrier avec sujet et corps
-

**Appel** - Numéro de téléphone clickable
-

**SMS** - Messages texte préremplis
-

**Contact** - Carte de visite (vCard 3.0)
-

**WiFi** - Configuration réseau automatique
-

**Localisation** - Coordonnées GPS pour navigation
-

**Événement** - Rendez-vous calendrier (iCal)
###

Personnalisation Avancée
-

Sélection dynamique du type de QR code
-

Personnalisation des couleurs (QR + fond)
-

4 tailles disponibles (150px à 600px)
-

Formulaires adaptatifs par type
-

Placeholders contextuels et professionnels
###

Export et Partage
-

Téléchargement PNG avec timestamp
-

Copie dans le presse-papier
-

Génération instantanée en temps réel
-

Raccourci clavier (Ctrl+Enter)
###

Historique Intelligent
-

Sauvegarde des 10 derniers QR codes
-

Régénération rapide avec tous les paramètres
-

Horodatage et identification du type
-

Stockage local (localStorage)
###

Statistiques de Vues
-

Compteur de vues quotidiennes
-

Compteur de vues totales
-

Détection par session (pas de comptage multiple)
-

Logs détaillés et persistants
##

Prérequis
- **PHP** 7.0 ou supérieur
- **Serveur web** Apache, Nginx, ou serveur PHP intégré
- **Navigateur** moderne avec support JavaScript ES6+
- **Stockage** Permissions d'écriture pour les fichiers de log
##

Installation
### Démarrage Rapide
```bash
# 1. Cloner ou télécharger le projet
cd qrgenerator
# 2. Lancer le serveur PHP
php -S localhost:8000
# 3. Ouvrir dans le navigateur
#
http://localhost:8000
```
### Serveur Web (Apache/Nginx)
1. Placer le projet dans le répertoire web (htdocs, public_html, etc.)
2. S'assurer que PHP a les permissions d'écriture
3. Accéder via
http://votre-domaine.com/qrgenerator/
##

Structure du Projet
```
qrgenerator/
├── index.php # Page principale (interface Web)
├── config.php # Configuration centralisée
├── generateur.php # Classe QRCodeGenerator (9 types)
├── api.php # API JSON pour génération
├── count.php # Gestion des compteurs de vues
├── styles.css # Design moderne et responsive
├── views.log # Log des vues quotidiennes
├── views_total.log # Log du compteur total
├── error.log # Log des erreurs
└── README.md # Documentation complète
```
##

Guide d'Utilisation
### Générer un Code QR
1. **Choisir le type** - Cliquez sur l'un des 9 boutons de type
2. **Remplir le formulaire** - Les champs s'adaptent au type sélectionné
3. **Personnaliser** - Ajustez la taille et les couleurs
4. **Générer** - Cliquez sur "Générer le Code QR"
### Exemples par Type
####

Texte
```
Contenu: "Bienvenue chez nous"
→ QR code simple avec le message
```
####

Lien Web
```
URL:
https://www.monsite.com
→ Redirection directe au site
```
####

Email
```
Email:
[email protected]
Sujet: "Demande de renseignements"
Message: "Je souhaite en savoir plus..."
→ Ouvre le client email prérempli
```
####

Contact (vCard)
```
Nom: Jean Dupont
Organisation: ACME Inc.
Email:
[email protected]
Téléphone: +33123456789
→ Ajoute le contact au répertoire
```
####

WiFi
```
SSID: MonReseau
Mot de passe: SecurePassword123
Sécurité: WPA
→ Connexion automatique au WiFi
```
####

Localisation
```
Latitude: 48.8566
Longitude: 2.3522
→ Ouvre GPS/Google Maps
```
####

Événement
```
Titre: Réunion Q1
Date: 2026-01-10
Heure: 14:00-15:30
Lieu: Salle 305
→ Ajoute au calendrier (.ics)
```
### Télécharger et Partager
```
1. Cliquez sur "

Télécharger PNG"
→ Fichier nommé: qr-code-[TYPE]-[TIMESTAMP].png
2. Cliquez sur "

Copier"
→ Image copiée dans le presse-papier
3. Utilisez "

Effacer"
→ Réinitialise la génération
```
##

Configuration
### Fichier config.php
Personnalisez les paramètres :
```php
// Tailles de QR code disponibles
$qrSizes = [
150 => 'Petite (150px)',
250 => 'Moyenne (250px)',
400 => 'Grande (400px)',
600 => 'Très grande (600px)'
];
// Types de QR code supportés
$qrTypes = [
'text' => [...], // Texte
'url' => [...], // URL
'email' => [...], // Email
'phone' => [...], // Appel
'sms' => [...], // SMS
'contact' => [...], // Contact vCard
'wifi' => [...], // WiFi
'location' => [...], // Localisation
'calendar' => [...] // Événement iCal
];
// Historique
define('MAX_HISTORY_ITEMS', 10);
// Fuseau horaire
date_default_timezone_set('Europe/Paris');
```
##

Architecture Technique
### Classe QRCodeGenerator
```php
// Utilisée via api.php
QRCodeGenerator::generate($type, $data);
```
**Formats de sortie** :
- **Email** : `mailto:` avec sujet et corps
- **Phone** : `tel:` pour appels directs
- **SMS** : `sms:` avec message prérempli
- **WiFi** : Format QR WiFi standard
- **Contact** : vCard 3.0
- **Localisation** : `geo:` URI standard
- **Événement** : iCalendar (RFC 5545)
### API JSON (api.php)
```javascript
// Requête
POST /api.php
{
"type": "email",
"data": {
"email": "
[email protected]",
"subject": "Sujet",
"message": "Corps du message"
}
}
// Réponse
{
"success": true,
"content": "mailto:
[email protected]?subject=...",
"type": "email"
}
```
##

Design et Interface
### Caractéristiques du Design
-

**Palette moderne** - Gradients bleu/violet
-

**Responsive** - Mobile, tablette, desktop
-

**Accessible** - Contraste suffisant, labels clairs
-

**Performant** - Chargement rapide, animations fluides
-

**Multi-langue** - Français professionnel
### Thème Actuel
```css
Primary: #667eea → #764ba2 (gradient)
Success: #10b981
Info: #0ea5e9
Danger: #ef4444
Background: #f8fafc
Border: #e8eef5
Text: #2d3748
```
Modifiez `styles.css` pour personnaliser les couleurs.
##

Sécurité
-

**Sessions sécurisées** - Cookies httpOnly
-

**Protection CSRF** - Validation JSON
-

**Validation d'entrées** - Sanitization PHP
-

**Gestion d'erreurs** - Logs détaillés
-

**HTTPS support** - Configuration configurable
-

**Comptage par session** - Pas d'abus
##

Logs et Statistiques
### Format des Fichiers
**views.log** :
```
2026-01-05,42
2026-01-06,15
```
**views_total.log** :
```
157
```
### Réinitialisation
Pour réinitialiser les statistiques :
```bash
# Supprimer les fichiers log
rm views.log views_total.log error.log
# Les fichiers seront recréés automatiquement
```
##

Dépannage
### Le compteur de vues ne fonctionne pas
-

Vérifiez les permissions d'écriture du répertoire
-

Consultez `error.log` pour les détails
-

Assurez-vous que PHP a les droits d'accès
### Le formulaire ne change pas au changement de type
-

Vérifiez que JavaScript est activé
-

Ouvrez la console du navigateur (F12)
-

Rechargez la page (Ctrl+F5)
### L'historique ne se sauvegarde pas
-

Vérifiez que localStorage est activé
-

Testez en navigation normale (pas incognito)
-

Vérifiez l'espace disque disponible
### Les QR codes WiFi ne se connectent pas
-

Assurez-vous que le SSID est exact
-

Vérifiez le type de sécurité (WPA/WEP/Aucune)
-

Testez sur plusieurs appareils
##

Améliorations Futures
- [ ] **Thèmes prédéfinis** - Styles de couleurs pré-configurés
- [ ] **Formats supplémentaires** - SVG, JPEG, PDF
- [ ] **Niveaux de correction** - Customizable error correction
- [ ] **Logo au centre** - Insertion d'image personnalisée
- [ ] **API REST** - Génération programmatique de QR codes
- [ ] **Base de données** - Historique côté serveur
- [ ] **Analytics avancées** - Graphiques de performance
- [ ] **Export batch** - Génération multiple en masse
- [ ] **Codes dynamiques** - QR codes changements
##

Licence
Copyright © [easycoding.fr](https://www.easycoding.fr)
Distribué sous licence libre pour usage personnel et commercial.
##

Support et Contribution
**Questions ?** Visitez [easycoding.fr](https://www.easycoding.fr)
**Suggestions ?** N'hésitez pas à proposer des améliorations.
---
Créé avec

par **easycoding.fr** | Dernier update: Janvier 2026
##

Logs et Statistiques
### Format des logs
- **views.log** : `date,nombre_de_vues`
- **views_total.log** : nombre total de vues
### Réinitialisation
Pour réinitialiser les compteurs, supprimez les fichiers `.log`
##

Dépannage
**Le compteur ne fonctionne pas** :
- Vérifiez les permissions d'écriture du répertoire
- Consultez error.log pour les détails
**Le QR code ne se génère pas** :
- Vérifiez la console JavaScript du navigateur
- Assurez-vous que la bibliothèque QRious est chargée
**L'historique ne se sauvegarde pas** :
- Vérifiez que localStorage est activé dans votre navigateur
- Testez en navigation privée
##

Améliorations Futures
- [ ] Export en différents formats (SVG, JPEG)
- [ ] Niveaux de correction d'erreur personnalisables
- [ ] Logo au centre du QR code
- [ ] Thèmes de couleur prédéfinis
- [ ] API REST pour génération de QR codes
- [ ] Statistiques avancées avec graphiques
- [ ] Base de données pour l'historique côté serveur
##

Licence
Copyright © [easycoding.fr](https://www.easycoding.fr)
##

Support
Pour toute question ou suggestion, visitez [easycoding.fr](https://www.easycoding.fr)
---
Fait avec

par easycoding.fr