Le formulaire de contact

Le formulaire de contact

Créer un formulaire de contact en HTML est une tâche courante pour permettre aux utilisateurs de vous envoyer des messages directement depuis votre site web. Voici un guide étape par étape pour créer un formulaire de contact simple.

1. Structure de Base du Formulaire

Commençons par créer la structure de base du formulaire avec des champs pour le nom, l’email, le sujet, le message et un bouton d’envoi.

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulaire de Contact</title>
</head>
<body>
    <h2>Contactez-nous</h2>
    <form action="/envoyer_message" method="POST">
        <label for="nom">Nom :</label><br>
        <input type="text" id="nom" name="nom" required><br><br>

        <label for="email">Email :</label><br>
        <input type="email" id="email" name="email" required><br><br>

        <label for="sujet">Sujet :</label><br>
        <input type="text" id="sujet" name="sujet" required><br><br>

        <label for="message">Message :</label><br>
        <textarea id="message" name="message" rows="5" required></textarea><br><br>

        <input type="submit" value="Envoyer">
    </form>
</body>
</html>

2. Explication des Éléments

  • <form> : Contient tous les champs du formulaire.
  • action="/envoyer_message" : Spécifie l’URL où les données du formulaire seront envoyées lorsqu’il sera soumis.
  • method="POST" : Indique que les données du formulaire seront envoyées en utilisant la méthode POST (plus sécurisée que GET pour les informations sensibles).
  • <label> : Associe un texte descriptif à un champ de saisie.
  • for="nom" : Fait référence à l’id du champ de saisie correspondant.
  • <input type="text"> : Champ de texte pour saisir des données courtes comme le nom ou le sujet.
  • id="nom" name="nom" : L’attribut id est utilisé pour associer l’étiquette au champ, tandis que name spécifie le nom du champ qui sera utilisé pour envoyer les données.
  • <input type="email"> : Champ de saisie spécifiquement pour les adresses email, avec validation automatique.
  • <textarea> : Utilisé pour les messages plus longs. Le nombre de lignes visibles est déterminé par l’attribut rows.
  • <input type="submit"> : Bouton pour soumettre le formulaire.

3. Ajouter du Style avec CSS

Pour améliorer l’apparence du formulaire, vous pouvez ajouter du CSS. Voici un exemple basique pour styliser le formulaire :

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulaire de Contact</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f4;
            padding: 20px;
        }
        form {
            background-color: #fff;
            padding: 20px;
            border-radius: 5px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            max-width: 500px;
            margin: 0 auto;
        }
        input[type="text"], input[type="email"], textarea {
            width: 100%;
            padding: 10px;
            margin-top: 5px;
            margin-bottom: 20px;
            border: 1px solid #ccc;
            border-radius: 5px;
        }
        input[type="submit"] {
            background-color: #5cb85c;
            color: white;
            padding: 10px 15px;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }
        input[type="submit"]:hover {
            background-color: #4cae4c;
        }
    </style>
</head>
<body>
    <h2>Contactez-nous</h2>
    <form action="/envoyer_message" method="POST">
        <label for="nom">Nom :</label><br>
        <input type="text" id="nom" name="nom" required><br><br>

        <label for="email">Email :</label><br>
        <input type="email" id="email" name="email" required><br><br>

        <label for="sujet">Sujet :</label><br>
        <input type="text" id="sujet" name="sujet" required><br><br>

        <label for="message">Message :</label><br>
        <textarea id="message" name="message" rows="5" required></textarea><br><br>

        <input type="submit" value="Envoyer">
    </form>
</body>
</html>

4. Traitement des Données du Formulaire

Le HTML seul ne peut pas traiter les données du formulaire. Pour cela, vous avez besoin d’un langage côté serveur comme PHP, Python (Django, Flask), Node.js, etc.

Un exemple de traitement simple avec PHP :

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $nom = htmlspecialchars($_POST['nom']);
    $email = htmlspecialchars($_POST['email']);
    $sujet = htmlspecialchars($_POST['sujet']);
    $message = htmlspecialchars($_POST['message']);

    // Envoyer l'email
    $to = "votreemail@example.com";
    $headers = "From: $email\r\n";
    mail($to, $sujet, $message, $headers);

    echo "Merci, votre message a été envoyé.";
}
?>

5. Vérification des Champs

Vous pouvez ajouter une validation côté client en utilisant l’attribut required pour les champs obligatoires ou en utilisant JavaScript pour des validations plus complexes.

6. Considérations Supplémentaires

  • Sécurité : Toujours valider et désinfecter les données envoyées par l’utilisateur pour éviter les failles comme l’injection SQL ou XSS.
  • Accessibilité : Assurez-vous que votre formulaire est accessible, par exemple en utilisant des labels correctement associés à leurs champs.

Conclusion

Avec ces étapes, vous pouvez créer un formulaire de contact fonctionnel et attrayant pour votre site web. N’oubliez pas que la partie HTML est seulement la face visible de l’iceberg ; le traitement des données doit être bien sécurisé et adapté à vos besoins. Ce formulaire peut également être adapté pour d’autres usages.

Image d’illustration : Gerd Altmann de Pixabay