PHP + '

Bonjour, voila mon code et le prob

Code "twitter2"
<?
            $membre = mysql_fetch_assoc(mysql_query("SELECT * FROM me_utilisateur WHERE identifiant='$s_identifiant'"));  

      
	  $msg_user= $s_identifiant;

    $avatar_msg= $membre['avatar'];


if(isset($_POST['titre']))      $titre=$_POST['titre'];
else      $titre="";

if(isset($_POST['msg']))      $msg=$_POST['msg'];
else      $msg="";
if($_POST) {
$db = mysql_connect('sql.olympe-network.com', '14059_gilbertsql', 'xxx');  // connexion à la base 
    mysql_select_db('14059_gilbertsql',$db);                  // sélection de la base 
     
        $sql = "INSERT INTO me_msg_twitter(msg_user, avatar_msg, titre, msg) VALUES('$msg_user','$avatar_msg','$titre','$msg')"; 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());  
         
        // on affiche le résultat pour le visiteur 
        echo 'Votre message a été ajoutées.'; 
		
?><script type="text/javascript">window.setTimeout("location=('?page=twitter1');",3000);</script><? } else { header('Location: ?page=index'); } ?>

le code de la page qui post
<form method="POST" action="?page=twitter2">

<fieldset style="-border-radius: 10px; ">
<legend>Message des membres</legend>
	<fieldset style="border-radius: 10px; "><br /><center>
	Titre :<input style="font-size:20px" type="text" name="titre" size="20" value="" maxlength="70"><br />
Message: <textarea name="msg" rows="3" cols="60"></textarea><br />
<input type="submit" value="Envoyer" name="envoyer"><br />
</center>
</fieldset>
<br />
</fieldset>
</center>
</form>


le msg d'erreur

Erreur SQL !INSERT INTO me_msg_twitter(msg_user, avatar_msg, titre, msg) VALUES('gilbert1995','http://comps.fotosearch.com/comp/IMZ/IMZ312/webmaster-travail_~sps0547.jpg','Clan iGZ','gdfgfg j'ai pas oti')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ai pas oti')' at line 1

le message poster

"J'aime les feuilles"

qui peux m'aider s.v.p.

3 réponses

  1. Salut.

    Je suppose qu'après "oti" c'est un apostrophe ?
    Il faut protéger tes variables avec mysql_real_escape_string().
    Actuellement, si l'option magic_quotes n'est pas activée, il est possible de faire des injections SQL.
    2
    1. Je suis d'accord avec avion-f16, en fait je crois que ce qui fait boguer c'est l'apostrophe dans le j'ai de j'ai pas oti.
      C'est la bonne idée d'utiliser mysql_real_escape_string().
      0
      1. je l'ajoute ou ?
        0
      2. Dans ta ligne d'insertion SQL, remplace ton $msg par ".mysql_real_escape_string($msg)." (avec les guillements).
        Il est indispensable d'échapper les données que les visiteurs entrent sur ton site, pour éviter tout problème de sécurité. Pense donc à faire de même pour tes autres variables issues des $_POST
        0
      3. bon je sais que je vais parrte nul mais peut tu me maitre le code au complet que je doit insérer car je ne te suis pas :)
        0
      4. $sql = "INSERT INTO me_msg_twitter(msg_user, avatar_msg, titre, msg) VALUES('$msg_user','$avatar_msg','$titre','$msg')";
        mysql_query(mysql_real_escape_string($sql)) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
        0
      5. Erreur SQL !INSERT INTO me_msg_twitter(msg_user, avatar_msg, titre, msg) VALUES('gilbert1995','http://comps.fotosearch.com/comp/IMZ/IMZ312/webmaster-travail_~sps0547.jpg','Gilbert','allo j'aie les feuille')
        You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'gilbert1995\',\'http://comps.fotosearch.com/comp/IMZ/IMZ312/webmaster-travail_' at line 1
        voila le code d'erreur
        0
    2. function _escape($string = "") {
      return mysql_escape_string ( $string );
      }

      $sql = "INSERT INTO me_msg_twitter(msg_user, avatar_msg, titre, msg) VALUES ('" . _escape ( $msg_user ) . "','" . _escape ( $avatar_msg ) . "','" . _escape ( $titre ) . "','" . _escape ( $msg ) . "')";

      0
      1. MERCI MILLE FOIS
        0
      2. Une petite chose qu'elle code je rajoute et sur quel page pour mettre un alert comme quoi la personne a oublier de remplir un champ MERCI
        0