En vous promenant sur Beamreactor, nous stockons votre IP 48h pour des raisons de sécurité.

Lecteur Markdown

guestbook Documentation › GUESTBOOK_DOCUMENTATION_FR

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 |

de en fr