Bonjour à tous
J'ai fait un formulaire de contact
Comment faire pour faire en sorte que dans ma table mysql et dans l'e-mail que je recoit il n'y pas les caracteres du type \', ", ...
Cordialement
Merci
Bonjour à tous
J'ai fait un formulaire de contact
Comment faire pour faire en sorte que dans ma table mysql et dans l'e-mail que je recoit il n'y pas les caracteres du type \', ", ...
Cordialement
Merci
A moins qu'un utilisateur les tape avec ses petits doigts, c'est toi qui produit ces caractères dans ton code en utilisant a tord ou en trop des fonctions comme addslashes et htmlentities.
La seule fonction utilise si tu travailles avec mysql est mysql_real_escape_string().
Il faut alors travailler avec l'option magic_quotes desactivée.
ok mais est ce qu'on y perd en terme de securité?
Merci
mysql_real_escape_string() est la pour ça ; il faut juste effectivement l'utiliser sur les chaines que tu inseres dans tes requetes.
magic_quotes disparaitra avec PHP6.
Ok mais ca ne marche pas
Pourtant je n'utilise pas les fonctions addslashes et htmlentities
Autre question: niveau securité est ce qu'il y a d'autres éléments à ajouter?
Merci
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
41
42
43
44 <?php if (isset($_POST['B'])) // Si le bouton envoyer est cliqué { if (isset($_POST['nom']) AND ...) // Si les variables existent { if ($_POST['nom'] != NULL AND ...) // Si on a quelque chose à enregistrer { mysql_connect(...); // Connexion à MySql mysql_select_db("..."); // Sélection de la base $nom = mysql_real_escape_string(htmlspecialchars($_POST['nom'])); ... // On enregistre les élements dans la base mysql_query("INSERT INTO contact VALUES('', '$nom', ...)") or die(mysql_error()); // mysql_query: requete $webmaster=('...'); /* Construction du message */ $msg = 'Bonjour,'."\r\n\r\n"; $msg .= 'Ce mail a été envoyé depuis emmakaya.free.fr/ek par '.$nom.' '.$prenom."\r\n\r\n"; $msg .= 'Fonction: '.$fonction.' email:'.$mail."\r\n\r\n"; $msg .= 'Objet:: '.$objet."\r\n\r\n"; $msg .= 'Voici le message qui vous est adressé :'."\r\n"; $msg .= '***************************'."\r\n"; $msg .= $message."\r\n"; $msg .= '***************************'."\r\n"; mail($webmaster,$objet,$msg); mysql_close(); // Déconnexion de MySQL echo "<meta http-equiv='Refresh' content='0; url=...html'>"; } else { echo "<meta http-equiv='Refresh' content='0; url=...html'>"; } } } ?>
Comme leurs noms l'indiquent htmlentities() et htmlspecialchars() servent a préparer des données pour un affichage HTML.
Il n'y a donc pas a les utiliser pour insérer des données dans une base.
Partager