IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Caractères du type \', &quot, etc


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Caractères du type \', &quot, etc
    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 \', &quot, ...

    Cordialement

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    ok mais est ce qu'on y perd en terme de securité?

    Merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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.

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    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'>";
    				}
     
    		}
    }
     
    ?>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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.

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/08/2006, 10h14
  2. UPDATE en ajoutant un 0 sur un champ de type "char"
    Par doum2 dans le forum Requêtes
    Réponses: 1
    Dernier message: 08/03/2006, 15h22
  3. Réponses: 2
    Dernier message: 03/10/2005, 17h23
  4. Transformer un caractère en type énuméré
    Par HT dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2002, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo