Constructeur de formulaires
QuietCMS intègre un constructeur de formulaires visuel accessible depuis Admin → Formulaires. Il permet de créer des formulaires de contact, d'inscription ou de commande sans écrire une ligne de code, via une interface de glisser-déposer des champs.
Types de champs disponibles
- text — champ texte simple
- email — champ email avec validation de format
- textarea — zone de texte multiligne
- select — liste déroulante
- radio — boutons radio (choix unique)
- checkbox — cases à cocher (choix multiples)
- hidden — champ masqué pour données techniques
Chaque champ peut être marqué comme obligatoire. La validation est effectuée côté serveur — ne jamais faire confiance uniquement à la validation JavaScript côté client.
Sécurité des formulaires
Tous les formulaires publics sont protégés contre les attaques CSRF par un token de session. Un token unique est généré à l'affichage du formulaire et vérifié à la soumission :
// Génération (côté template)
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
// Vérification (côté traitement)
if (!hash_equals($_SESSION['csrf_token'], $_POST['csrf_token'])) {
http_response_code(403);
exit('Token CSRF invalide.');
}
Notifications par email et stockage des soumissions
À chaque soumission, le CMS peut :
- Envoyer un email de notification à un ou plusieurs destinataires (configurables par formulaire)
- Sauvegarder la soumission dans
content/submissions/<form-slug>/<timestamp>.jsonpour consultation dans le back-office
Le sujet de l'email, le template et l'expéditeur sont paramétrables. La redirection après soumission pointe vers une URL validée côté serveur pour prévenir les redirections ouvertes.
Système de commentaires
QuietCMS propose un système de commentaires natif pour les articles de blog. Les visiteurs doivent créer un compte lecteur (email + mot de passe) avant de commenter. Les mots de passe sont hachés avec password_hash($password, PASSWORD_BCRYPT, ['cost' => 11]).
Flux de modération
- Le lecteur soumet un commentaire
- Le commentaire passe en file d'attente de modération (
status: pending) - L'administrateur approuve ou rejette depuis Admin → Commentaires
- Le commentaire approuvé (
status: approved) apparaît publiquement
Un mode auto-approbation est disponible pour les sites avec un public de confiance. Les commentaires marqués comme spam (status: spam) sont masqués sans suppression définitive.
Politique sur les liens
L'administrateur peut choisir de :
- Autoriser les liens dans les commentaires (avec attribut
rel="nofollow ugc"automatique) - Interdire les liens (les URLs sont converties en texte brut)
Sécurité des comptes lecteurs
QuietCMS prévient la fixation de session en régénérant l'identifiant de session à chaque connexion :
session_start();
// Vérification des identifiants
if (password_verify($password, $storedHash)) {
session_regenerate_id(true); // Prévient la fixation de session
$_SESSION['reader_id'] = $reader['id'];
}
La classe CommentManager centralise toutes les opérations sur les commentaires (ajout, lecture, approbation, suppression). Formulaires et commentaires partagent le même mécanisme de token CSRF basé sur la session PHP.
Articles similaires
Bibliothèque médias et conversion WebP automatique
Gérez vos images et vidéos avec QuietCMS : conversion WebP automatique, dossiers, alt-text et sanitisation SVG.
Gestion des pages et articles dans QuietCMS
Comment créer et gérer des pages statiques et des articles de blog dans QuietCMS avec le back-office.
Hooks plugins : body_end et head_end
Comment fonctionne le système de hooks de QuietCMS pour étendre le CMS avec des plugins PHP.