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

 MySQL Discussion :

Problème d'apostrophe =s


Sujet :

MySQL

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut Problème d'apostrophe =s
    Bonjour, encore un Nième problème ^^ Ce coup-ci c'est au niveau de mon système de commentaires Le code fonctionne mais si on entre une ' dans la zone de commentaire (formulaire) l'enregistrement du commentaire ne se fait pas dans la bdd. J'avais eu le même problème en python à l'époque et la solution était de remplacer une ' par deux '' , cependant ici je ne vois pas ou faire cela...

    Voici le bout de code concerné :

    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
     
    <form method="post">
    <textarea rows=10 COLS=50 name="com" id="0"></textarea>
    <div id="Layer1">
      <input name="submit" type="submit" value="Commenter" >
     
    <?php
    if (isset($_POST['com']))
    {
    	$com = $_POST['com'];
    	if ($com != "") 
    	{
    		try
    		{
    		// On se connecte à MySQL
    		$connect = mysql_connect('localhost','user','pass');
    		$bd = mysql_select_db('mabdd');
    		}
    		catch(Exception $e)
    		{
    		// En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    		}
    		$enr_com = mysql_query("INSERT INTO commentaires (commentaires) VALUES ('".$com."')",$connect);
    		echo "Commentaire :<br> $com posté par ", $_SESSION['login'];
    	}
    	else
    	{
    	echo 'Veuillez entrer un commentaire';
    	}
    }
    ?>
    Merci d'avance !

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    la solution s'appelle mysql_real_escape_string()

  3. #3
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonjour.

    Personnellement, j'utiliserai plutôt les fonctions PHP addslashes () (pour échapper une chaîne avant l'insertion en base) et stripslashes () (pour enlever les carractères d'échappement avant l'affichage).

    Voir le man pour en savoir plus

    Bon aller, un exemple d'utilisation :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $str = "Salut l'ami";
     
    $str = addslashes ($str);
    // Ici $str = "Salut l\'ami" => on peut faire l'INSERT
     
    // après récupération via un SELECT 
    $str = stripslashes ($str);
    // ici $str = "Salut l'ami" => on peut l'afficher avec un echo

    Cordialement,
    Idriss

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Problème d'apostrophes dans insertion sql
    Par 12_darte_12 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/05/2006, 16h20
  2. Réponses: 17
    Dernier message: 03/05/2006, 14h01
  3. [MySQL] Problème d'apostrophe avec PHP
    Par gcooo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/04/2006, 14h08
  4. Problème d'apostrophe
    Par Viau dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 14h06
  5. problème avec apostrophe
    Par nadds dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2005, 11h13

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