Bonjour,
Je suis en train de coder un site et je cale sur ... les formulaires.
Impossible de trouver exactement quoi faire pour le sécuriser et enregistrer les données correctement (je ne parle pas du contrôle de cohérence des données) .
J'ai cherché, fais pas mal de tests, essayé des scripts, mais à chaque fois j'arrive à trouver une faille.
Entre les stripslashes, htmlspecialchars et autres htmlentities, je m'y perd.
Difficulté supplémentaire, il faudrait idéalement que cela fonctionne avec MAGIC QUOTES activé ou non.
Voila la facon dont c'est organisé :
La classe TrtC enregistre le commentaire en table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 $email = (isset($_POST['email'])) ? $_POST['email'] : ''; $nom = (isset($_POST['nom'])) ? $_POST['nom'] : ''; $commentaires = (isset($_POST['commentaires'])) ? $_POST['commentaires']: ''; $message = ''; if (isset($_POST['envoi'])) { $message_err = 'Certains champs sont en erreur ou non renseigné : '; $message .= (isEmail($email)) ? '' : '<br>- Email'; $message .= ($nom != '') ? '' : '<br>- Nom'; $message .= ($commentaires != '') ? '' : '<br>- Description du projet'; if ($message != ''){ echo $message_err . $message; }else{ $demande = new TrtC(); $demande->email = $email; $demande->nom = $nom; $demande->commentaires = $commentaires; $demande->enregistrement(); $demande =''; } } // Si le formulaire à deja ete envoyé et que le message d'erreur n'a pas ete positionné //On construcit le formulaire en fonction du destinataire if (!isset($_POST['envoi']) || $message != ''){ include("include/formulaires.php"); } Dans formulaire.php : ... <input style="width:350px;" type="text" id="nom" name="nom" value="'.$nom.'" /> <textarea id="commentaires" name="commentaires" rows="auto" cols="auto" style="width:350px; height:100px;">' .$commentaires. '</textarea> ...
Que faut-il faire et à quel moment pour eviter les injections de code et bien tout enregistrer en table ?
Les quotes en particulier, surtout les doubles, me posent problème.
Merci pour votre aide.
Partager