Erreur SQL aléatoire.

Eléphanteau du PHP | 37 Messages

24 juil. 2014, 14:02

Bonjour à vous et oui c'est encore moi :D

Site en question: http://birdstream.net
J'aurais besoin de comprendre, de mon côté je n'ai pas ce problème, mais aléatoirement les gens qui post des films pour moi reçoivent une erreur SQL, mais cela n'est pas tout le temps. Au début tout allait bien mais depuis hier deux membre on eu une erreur alors que d'autres l'ont même pas eu. Voici l'erreur en question:
Image


Des explication :D ?

Merci d'avance xx

Mammouth du PHP | 504 Messages

24 juil. 2014, 14:51

salut,

Peux tu faire en sorte qu'on voit l'intégralité du message d'erreur stp, parce c'est coupé a droite.

Merci

Eléphanteau du PHP | 37 Messages

24 juil. 2014, 15:01

Oui voilà :)
Les informations on bien été enregistrer. Retour sur la page d'ajout de filmErreur SQL !INSERT INTO stream (idStream, titre, description, year, pays, acteurs, iframe, image, genre) VALUES (NULL, 'Harold & Kumar Chassent Le Burger ', 'Harold et Kumar, deux colocataires amateurs de ganja, tombent sur une publicité du fast-food de luxe White castle, et décident de tout entreprendre pour manger ces délicieux burgers. Sur le chemin, ils seront confrontés à la police, à des rednecks et à encore beaucoup d'autre épreuves tout en cherchant de quoi fumer.', '2007', 'États-Unis', ' John Cho, Kal Penn, Paula Garces', 'http://youwatch.org/embed-ka5lpfe0i7r1-600x360.html', 'http://stephabcd.files.wordpress.com/20 ... mar_11.jpg', 'comédie')
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 'autre épreuves tout en cherchant de quoi fumer.', '2007', 'États-Unis', ' Joh' at line 1



RECTIFICATION: Nous avons tous ce problème maintenant :(

Si jamais, voici le code de ma page d'ajout:
<?php
$base = mysql_connect ('...', '...', '...');
mysql_select_db ('...', $base) ;
?>
<!doctype html>
<html lang="fr">

<head>
  <title>BirdStream - Admin panel - Données ajoutés à la base !</title>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="robots" content="noindex, nofollow" />
  <link rel="stylesheet" href="style.css">
</head>

<body>
<div class="header">

</div>
<div class="sousheader">
<a href="http://birdstream.net/">
<div id="logo"></div>
</a>
</div>

<?php

        $error = 0;
        foreach($_POST as $k => $v) {
                if(empty($_POST[$k])) $error = 1;
        }
        
        if($error == 0) {
                echo 'Les informations on bien été enregistrer. <a href="http://admin.birdstream.net/">Retour sur la page d\'ajout de film</a>';
        } else {
                echo 'Le formulaire est invalide. S\'il vous plait, veuillez recommencer. <a href="http://admin.birdstream.net/">Retour sur la page d\'ajout de film</a>';
        }
$sql = "INSERT INTO stream (idStream, titre, description, year, pays, acteurs, iframe, image, genre) VALUES (NULL, '".$_POST['titre']."', '".$_POST['description']."', '".$_POST['year']."', '".$_POST['pays']."', '".$_POST['acteurs']."', '".$_POST['iframe']."', '".$_POST['image']."', '".$_POST['genre']."')";

mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion à la base
mysql_close();
		?>
		
		</body>

</html>

Mammouth du PHP | 504 Messages

24 juil. 2014, 15:15

Re,

Je pense que c'est l'apostophe => d'autre épreuves.

Protèges tes injection ou update:
mysql_real_escape_string($data)
INSERT INTO `table` (`id`,`data`) VALUES ('".mysql_real_escape_string($data['id'])."','".mysql_real_escape_string($data['content'])."')

Eléphanteau du PHP | 37 Messages

24 juil. 2014, 15:20

D'accord, je te remercie et je corrige, puis je te redonne des nouvelles :)

Eléphanteau du PHP | 37 Messages

24 juil. 2014, 15:24

J'ai maintenant une question. Cela était bien dû à l'apostrophe... Mais ceci est une description donc dans un texte, un apostrophe est normal. Comment faire pour régler le problème ?

Mammouth du PHP | 504 Messages

24 juil. 2014, 15:40

Je ne comprends pas bien ta question, il te suffit de protéger tes injections avec mysql-real-escape-string sans faire attention au fait qu'il y ai de sapostrophes ou pas.

Regarde la doc http://php.net/manual/fr/function.mysql ... string.php