PHP + '

gilbert1995 Messages postés 414 Date d'inscription   Statut Membre Dernière intervention   -  
 __construct() -
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.


A voir également:

3 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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
coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   119
 
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
gilbert1995 Messages postés 414 Date d'inscription   Statut Membre Dernière intervention   29
 
je l'ajoute ou ?
0
Hubert J. Farnsworth Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
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
gilbert1995 Messages postés 414 Date d'inscription   Statut Membre Dernière intervention   29
 
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
coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   119
 
$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
gilbert1995 Messages postés 414 Date d'inscription   Statut Membre Dernière intervention   29
 
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
elghafoud Messages postés 121 Date d'inscription   Statut Membre Dernière intervention   18
 
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
gilbert1995 Messages postés 414 Date d'inscription   Statut Membre Dernière intervention   29
 
MERCI MILLE FOIS
0
gilbert1995 Messages postés 414 Date d'inscription   Statut Membre Dernière intervention   29
 
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
__construct()
 
Bonsoir,
A lire avant d'utiliser ce genre de fonction mysql_escape_string()
Voir la doc pour cette fonction https://www.php.net/manual/fr/function.mysql-escape-string.php

Pourquoi créer une fonction qui fait la même chose q'une fonction PHP existante ?
Voir la doc pour la fonction mysql_real_escape_string()
https://www.php.net/manual/fr/function.mysql-real-escape-string.php
0