input html
5/5 - (14 votes)

Qu’est-ce qu’un input html ?

 

Techniquement, un input HTML est un élément (champ) du formulaire qui permet à l’utilisateur d’entrer des données sur votre site web. Il est intégré dans la balise <form> pour collecter des informations à envoyer au serveur lors de la soumission du formulaire. Par exemple, un champ pour saisir le nom d’utilisateur, l’adresse e-mail ou le mot de passe.

L’utilisation de l’input est assez simple, il suffit de créer un élément <input> dans votre code HTML, en spécifiant le type d’input souhaité avec l’attribut « type ». Les types d’input les plus courants sont : text, password, email, number, tel, checkbox, radio, file, submit.. Chaque type d’input a une utilisation spécifique en fonction des données à collecter.

 

<form action="/submit" method="post">
  <label for="username">Nom d'utilisateur :</label>
  <input type="text" id="username" name="username" required>
  <input type="submit" value="Envoyer">
</form>

 

 

Les différents types d’input html

 

Input type texte

Utilisé pour saisir du texte simple, comme un nom ou une adresse :

<label for="nom">Nom :</label>
<input type="text" id="nom" name="nom" required>

 

Input type Password

Permet de saisir un mot de passe en masquant les caractères

<label for="motdepasse">Mot de passe :</label>
<input type="password" id="motdepasse" name="motdepasse" required>

 

Input type Email

Conçu pour entrer une adresse e-mail valide

<label for="email">Adresse e-mail :</label>
<input type="email" id="email" name="email" required>

 

Input type Number

Destiné à entrer un nombre entier ou décimal.

<label for="quantite">Quantité :</label>
<input type="number" id="quantite" name="quantite" min="1" max="100">

 

Input type Tel

Sert à entrer un numéro de téléphone.

<label for="telephone">Téléphone :</label>
<input type="tel" id="telephone" name="telephone">

 

Input type Checkbox

Permet de sélectionner plusieurs options à la fois

<label for="option1">Option 1</label>
<input type="checkbox" id="option1" name="option1">

 

Input type Radio

Utilisé pour choisir une seule option parmi plusieur

<label for="choix1">Choix 1</label>
<input type="radio" id="choix1" name="choix" value="1">

 

Input type File

Permet de télécharger un fichier depuis l’ordinateur de l’utilisateur

<label for="fichier">Fichier :</label>
<input type="file" id="fichier" name="fichier">

 

Input type Submit

Sert à soumettre le formulaire.

<input type="submit" value="Envoyer">

 

Input type Range

Pour choisir une valeur numérique à partir d’une plage définie

<label for="volume">Volume :</label>
<input type="range" id="volume" name="volume" min="0" max="100">

 

Input type Date

Permet de sélectionner une date dans un calendrier.

<label for="date">Date :</label>
<input type="date" id="date" name="date">

 

Input type Datetime-local

Permet de saisir une date et une heure locales sans fuseau horaire.

 

<label for="rendezvous">Rendez-vous :</label>
<input type="datetime-local" id="rendezvous" name="rendezvous">

 

Input type Time

Utilisé pour entrer une heure.

<label for="heure">Heure :</label>
<input type="time" id="heure" name="heure">

 

Input type Week

Permet de sélectionner une semaine et une année.

<label for="semaine">Semaine :</label>
<input type="week" id="semaine" name="semaine">

 

Input type Month

Utilisé pour choisir un mois et une année.

<label for="mois">Mois :</label>
<input type="month" id="mois" name="mois">

 

Input type Color

Permet de sélectionner une couleur à l’aide d’un sélecteur de couleur.

<label for="couleur">Couleur :</label>
<input type="color" id="couleur" name="couleur">

 

Input type Search

Conçu pour entrer une chaîne de recherche.

<label for="recherche">Recherche :</label>
<input type="search" id="recherche" name="recherche">

 

Input type URL

Utilisé pour saisir une URL valide.

<label for="site">Site :</label>
<input type="url" id="site" name="site">

 

Input type Hidden

Un champ caché utilisé pour stocker des données qui ne doivent pas être modifiées par l’utilisateur.

<input type="hidden" id="id" name="id" value="123">

 

Input type Button

Un bouton générique qui peut être utilisé avec des scripts JavaScript pour déclencher des actions.

<button type="button" onclick="maFonction()">Cliquez-moi</button>

 

Input type Image

Un bouton graphique qui peut être utilisé pour soumettre un formulaire.

<input type="image" src="submit.png" alt="Soumettre" width="64" height="64">

 

Input type Reset

Un bouton qui réinitialise tous les champs d’un formulaire à leurs valeurs par défaut.

<input type="reset" value="Réinitialiser">

Ces types d’input sont moins fréquemment utilisés, mais peuvent être utiles dans certaines situations spécifiques.

 

 

Sécuriser un input html pour protéger les données

 

Valider les données côté client

Utilisez JavaScript et l’attribut « pattern » pour valider les données saisies par l’utilisateur avant de les soumettre. Cela permet de vérifier si les données correspondent au format attendu et d’empêcher la soumission de données incorrectes, ce qui pourrait éviter l’injection d’un Shell. Exemple :

<label for="email">Email :</label>
<input type="email" id="email" name="email" pattern="[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" required>

 

Valider et nettoyer les données côté serveur

Même si vous avez validé les données côté client, il est crucial de les valider et de les nettoyer côté serveur également. Les utilisateurs malveillants peuvent contourner la validation côté client. Utilisez des fonctions de filtrage et de validation côté serveur pour vous assurer que les données sont correctes avant de les traiter. En PHP, vous pouvez utiliser des fonctions comme filter_var() ou preg_match() pour valider les données, et htmlspecialchars() ou strip_tags() pour nettoyer les données.

 

Utiliser les attributs « maxlength » et « minlength »

Définissez les attributs « maxlength » et « minlength » pour limiter la longueur des données saisies. Cela peut aider à éviter les tentatives d’exploitation de vulnérabilités liées à la longueur des chaînes. Exemple :

<label for="pseudo">Pseudo :</label>
<input type="text" id="pseudo" name="pseudo" minlength="3" maxlength="20" required>

 

Utiliser l’attribut « autocomplete »

L’attribut « autocomplete » peut être utilisé pour désactiver la fonction d’autocomplétion du navigateur pour les champs sensibles, tels que les mots de passe.

<label for="password">Mot de passe :</label>
<input type="password" id="password" name="password" autocomplete="off" required>

 

Utiliser des jetons CSRF (Cross-Site Request Forgery)

Les jetons CSRF sont des jetons uniques générés côté serveur qui sont ajoutés aux formulaires. Lors de la soumission du formulaire, le jeton est également soumis et vérifié côté serveur pour garantir que la demande provient d’une source légitime.

 

Utiliser HTTPS et installer un certificat SSL

Servez votre site et vos formulaires via HTTPS pour garantir que les données soumises sont cryptées et sécurisées lors de leur transmission entre le navigateur de l’utilisateur et votre serveur.