Bonjour à tous,
Je dispose d'un formulaire que je souhaite valider et sécuriser avant de soumettre celui-ci, sachant que la soumission (via le "submit") envoie les données vers une Base de données.
Voici le formulaire
La dernière ligne est le début de ma réflexion concernant la validation du formulaire mais elle est pour l'instant parfaitement inutile puisque je n'ai pas ajouté de condition.
Je vous fais une liste de ce que je souhaite implémenter pour les champs :
- "Date" : ne pas pouvoir ajouter de champ texte, ni de caractères spéciaux même si normalement le fait que le type du champ soit date le fait tout seul, la fonctionnalité n'est pas présente sur tous les navigateurs et permet une faille si je ne le sécurise pas.
- "Lieu" : je souhaite que l'utilisateur qui remplit ce champ puisse mettre un lien de ce type
J'imagine que c'est ce champ qui va poser le plus de problème, étant donné que l'injection de code dans un formulaire est quelque peu houleuse. Je ne vois pas trop comment aborder la chose pour l'instant.
- "Intervenant" et "Sujet" : pas de caractères spéciaux pour ces champs, je pense que ça suffira.
Enfin je souhaite que tous les champs soient remplis pour pouvoir permettre l'envoi du formulaire, je sais que c'est la fonction !empty qui permet ceci mais j'ignore comment la mettre en place pour mon cas.
Je précise que j'ai plus ou moins une idée de comment réaliser la chose mais je n'arrive pas réellement à mettre en forme mes idées puisque je suis un peu à la ramasse en PHP pour l'instant
.
Merci d'avance à tous et bonne journée !
PS : J'ai ouï-dire qu'une bonne pratique consistait à sécuriser le formulaire une première fois côté client avec du Javascript, puis une seconde fois côté serveur en PHP/Mysql. Ai-je besoin de rajouter une couche supplémentaire Javascript ou puis-je faire d'une pierre de coup en sécurisant seulement PHP/Mysql ?
Modifié par georgelarace (26 Apr 2013 - 11:27)
Je dispose d'un formulaire que je souhaite valider et sécuriser avant de soumettre celui-ci, sachant que la soumission (via le "submit") envoie les données vers une Base de données.
Voici le formulaire
<form name="formulaire" method="post" action="insert.php">
<p>
<label for="dateActu">Date à laquelle se déroule l'actualité</label>
<input type="[b]date[/b]" name="date" size="30"/>
</p>
<p>
<label for="lieuActu">Lieu où se déroule l'actualité</label>
<input type="text" name="[b]lieu[/b]" size="30"/><br/>
</p>
<p>
<label for="intActu">Nom de l'intervenant</label>
<input type="text" name="[b]intervenant[/b]" size="30"/><br/>
</p>
<p>
<label for="sujetActu">Sujet de l'actualité</label>
<input type="text" name="[b]sujet[/b]" size="30"/><br/>
</p>
<p>
<input type="submit" value="Soumettre">
</p>
</form>
<?php
if(empty($_POST["date"]) || empty($_POST["lieu"]) || empty($_POST["intervenant"]) || empty($_POST["sujet"])) {
echo "Vous devez compléter tous les champs du formulaire !";
}
?>
La dernière ligne est le début de ma réflexion concernant la validation du formulaire mais elle est pour l'instant parfaitement inutile puisque je n'ai pas ajouté de condition.
Je vous fais une liste de ce que je souhaite implémenter pour les champs :
- "Date" : ne pas pouvoir ajouter de champ texte, ni de caractères spéciaux même si normalement le fait que le type du champ soit date le fait tout seul, la fonctionnalité n'est pas présente sur tous les navigateurs et permet une faille si je ne le sécurise pas.
- "Lieu" : je souhaite que l'utilisateur qui remplit ce champ puisse mettre un lien de ce type
<a href="lelien.html">Le lieu où se déroule l'actu</a>
J'imagine que c'est ce champ qui va poser le plus de problème, étant donné que l'injection de code dans un formulaire est quelque peu houleuse. Je ne vois pas trop comment aborder la chose pour l'instant.
- "Intervenant" et "Sujet" : pas de caractères spéciaux pour ces champs, je pense que ça suffira.
Enfin je souhaite que tous les champs soient remplis pour pouvoir permettre l'envoi du formulaire, je sais que c'est la fonction !empty qui permet ceci mais j'ignore comment la mettre en place pour mon cas.
Je précise que j'ai plus ou moins une idée de comment réaliser la chose mais je n'arrive pas réellement à mettre en forme mes idées puisque je suis un peu à la ramasse en PHP pour l'instant

Merci d'avance à tous et bonne journée !
PS : J'ai ouï-dire qu'une bonne pratique consistait à sécuriser le formulaire une première fois côté client avec du Javascript, puis une seconde fois côté serveur en PHP/Mysql. Ai-je besoin de rajouter une couche supplémentaire Javascript ou puis-je faire d'une pierre de coup en sécurisant seulement PHP/Mysql ?
Modifié par georgelarace (26 Apr 2013 - 11:27)