# QR Code Statistiques - V1.1

Application PHP/MySQL/JS sans framework pour creer des QR Codes statistiques.

## Ce que fait la V1.1

- Creation d'un QR Code de type redirection URL.
- Creation d'un QR Code de type fiche contact vCard.
- Passage par `q.php?c=CODE` pour enregistrer le scan.
- Statistiques : total, jour, mois, visiteurs approximatifs, appareil, OS, navigateur, langue, ecran, fuseau horaire.
- Console admin avec authentification.
- CSS separes dans `assets/css/`.
- Page `diagnostic.php` pour trouver rapidement les problemes d'installation.

## Installation rapide

1. Creer une base MySQL, par exemple `qrcode_stats`.
2. Importer `sql/install.sql` dans cette base.
3. Copier `config/config.example.php` en `config/config.php`.
4. Modifier `config/config.php` :

```php
const DB_HOST = '127.0.0.1';
const DB_NAME = 'qrcode_stats';
const DB_USER = 'root';
const DB_PASS = 'root';
const APP_URL = 'http://localhost:8888/qrcode-stats';
```

En production :

```php
const APP_URL = 'https://xx.fr';
```

5. Ouvrir `diagnostic.php` dans le navigateur.
6. Si tout est OK, ouvrir `admin/setup.php` pour creer le premier administrateur.
7. Se connecter sur `admin/login.php`.
8. Supprimer `diagnostic.php` et `admin/setup.php` apres installation.

## Important sur le .htaccess

Dans cette version, le fichier `.htaccess` est volontairement fourni sous le nom :

```text
htaccess-optionnel.txt
```

Cela evite une erreur 500 sur certains hebergements qui refusent `RewriteEngine`.

Tant qu'il n'est pas active, les QR Codes utilisent cette forme :

```text
https://xx.fr/q.php?c=ABC123
```

Quand tout fonctionne, tu peux renommer `htaccess-optionnel.txt` en `.htaccess` pour accepter aussi :

```text
https://xx.fr/q/ABC123
```

Si une erreur 500 revient juste apres le renommage, supprime ou renomme `.htaccess`.

## Diagnostic erreur 500

Ouvre :

```text
https://xx.fr/diagnostic.php
```

La page verifie :

- version PHP ;
- extension PDO ;
- extension `pdo_mysql` ;
- presence de `config/config.php` ;
- connexion MySQL ;
- presence des tables SQL.

## QR Code de redirection

Le QR pointe vers le site support :

```text
https://xx.fr/q.php?c=CODE
```

Puis `q.php` :

1. cherche le QR Code ;
2. enregistre le scan ;
3. complete les infos JS si possible ;
4. redirige vers l'URL finale.

## QR Code fiche contact

Le QR pointe aussi vers :

```text
https://xx.fr/q.php?c=CODE
```

Puis `q.php` renvoie une vCard `.vcf` que le telephone peut enregistrer en contact.
