Lecteur Markdown
GUESTBOOK_DOCUMENTATION_FR
BeamReactor — Module `guestbook` (Livre d'or) #
Version : 5.2.0
Auteur : Treveur Bretaudière
Depuis : 2002
Dernière mise à jour : 2026-02-11
---
Présentation #
Le module `guestbook` est un livre d'or permettant aux utilisateurs de laisser des messages publics. Il inclut la modération, la protection anti-flood, la validation des entrées, et la pagination.
---
Prérequis #
- La table `guestbook` doit exister en base (vérification via `sql_table_exists()`).
- Accès de niveau `GUESTBOOK_LEVEL_USER` pour poster.
- Accès de niveau `GUESTBOOK_LEVEL_MODERATOR` pour supprimer.
- Classes `Beamreactor\Database\SQL` et `Beamreactor\Sanitizer\Parser`.
---
Table de données #
Table : `guestbook`
| Champ | Description |
|---|---|
| `id` | Identifiant unique (auto-increment) |
| `name` | Nom de l'auteur |
| `email` | Adresse email |
| `website` | Site web (optionnel) |
| `country` | Pays (sélection depuis une liste statique) |
| `message` | Contenu du message |
| `time` | Date de publication |
| `ip` | Adresse IP (via `ipCheck()`) |
---
Fonctionnement #
Anti-flood #
Avant tout traitement, le module vérifie la dernière entrée depuis la même IP. Si moins de 10 secondes se sont écoulées, un message est affiché et le module fait `return`.
Suppression (modération) #
Un utilisateur de niveau `GUESTBOOK_LEVEL_MODERATOR` peut supprimer une entrée via le paramètre GET `gbdelentry`. Confirmation JavaScript côté client.
Ajout de message #
Le formulaire est affiché si l'utilisateur a le niveau `GUESTBOOK_LEVEL_USER`. L'action d'ajout est déclenchée quand le submit correspond à `$dialgb[16]`.
| Champ | Contrôle |
|---|---|
| `name` | Obligatoire, `Parser::sanitize($str, 'string', maxLength: 40)` |
| `email` | Obligatoire, sanitisé via `Parser::sanitize($str, 'email')`, validé via `Parser::check()` |
| `website` | Optionnel, `Parser::sanitize($str, 'string', maxLength: 120)`, valeur `'none'` traitée comme vide |
| `country` | Obligatoire, doit différer de la valeur par défaut du select (`$dialgb[6]`) |
| `message` | Obligatoire, minimum 10 caractères, `Parser::sanitize($str, 'string', maxLength: 1000)` |
Le formulaire pré-remplit l'email depuis la session et conserve les valeurs saisies en cas d'erreur.
Affichage des messages #
Messages affichés par ordre décroissant d'ID, 10 par page. Chaque entrée montre le nom, le lien site web (si présent, préfixé `http://`), le pays, la date, et le message. Le lien de suppression `[X]` n'apparaît que pour les modérateurs.
Pagination #
Paramètre GET `gbpage`. Navigation précédent/suivant.
---
Liste des pays #
Le module embarque une liste statique d'environ 250 pays/territoires dans un tableau PHP `$countries`, incluant quelques entrées non-standard (Armor Breizh, Catalunya, Corsica, Scotland, les océans).
---
Configuration #
| Constante | Rôle |
|---|---|
| `GUESTBOOK_LEVEL_USER` | Niveau minimum pour poster |
| `GUESTBOOK_LEVEL_MODERATOR` | Niveau minimum pour supprimer |