Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1700 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  les ' dans un commentaires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

les ' dans un commentaires

n°2033297
narulepuis​san
Posté le 30-10-2010 à 23:33:56  profilanswer
 

Bonsoir,
j'ai fait un système de commentaires.
Quand dans le contenu je mes un ' ça me met une ERREUR SQL !
donc je dois mettre \' pour corriger ce problème or les visiteurs ne vont pas s'amuser à mettre \' !
 
Avez vous une solution??
 
Merci de Vos réponses !

mood
Publicité
Posté le 30-10-2010 à 23:33:56  profilanswer
 

n°2033304
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 31-10-2010 à 02:48:58  profilanswer
 

mysql_real_escape_string


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°2033340
stef_dober​mann
Personne n'est parfait ...
Posté le 31-10-2010 à 15:08:57  profilanswer
 

ou htmlentities($str, ENT_QUOTES);


---------------
Tout à commencé par un rêve...
n°2033349
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 31-10-2010 à 16:45:09  profilanswer
 

stef_dobermann a écrit :

ou htmlentities($str, ENT_QUOTES);


Pour le coup, mieux vaut utiliser mysql_real_escape_string. Ce dernier sert à protéger la requête SQL de tous les caractères dangereux possible. En plus, htmlentities va remplacer les quotes par un équivalent HTML (ce qui n'est pas forcément souhaitable) là ou mysql_real_escape_string va préserver les guillemets sous leur forme originale.


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°2033374
narulepuis​san
Posté le 31-10-2010 à 20:20:01  profilanswer
 

Bonsoir,
D'accord,
 
en sachant que j'ai ce code , comment vais je devoir le modifier ?
 
<?php
 require "../config.php";
  mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
  mysql_select_db(DB_BDD);
   extract($_POST);
   $sql="INSERT INTO news (titre,contenu,pseudo,avatar) VALUES ('$titre','$contenu','$pseudo','$avatar')";
   $req=mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
header("Location: index.php" );
 
?>
 
merci !

n°2033376
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 31-10-2010 à 20:39:28  profilanswer
 

mysql_real_escape_string sur $titre, $contenu, $pseudo et $avatar. Bref, chaque variable que tu vas passer dans la requête et qui est susceptible de contenir des caractères indésirables.


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°2033378
narulepuis​san
Posté le 31-10-2010 à 20:44:16  profilanswer
 

Oui mais je ne peux pas faire comme ça ?!
....
 
<?php  
 require "../config.php";  
  mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);  
  mysql_select_db(DB_BDD);  
   extract($_POST);  
   $sql="INSERT INTO news (titre,contenu,pseudo,avatar) VALUES (mysql_real_escape_string($titre),mysql_real_escape_string($contenu),mysql_real_escape_string($pseudo),mysql_real_escape_string($avatar)";  
   $req=mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
header("Location: index.php" );  
 
?>  
 
 
Si ?
ça fait pas très très longtemps que j'ai appris le PhP soyez indulgent de mes conneries !


Message édité par narulepuissan le 31-10-2010 à 20:49:18
n°2033382
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 31-10-2010 à 21:21:30  profilanswer
 

"Oui mais je ne peux pas faire comme ça ?!"
 
Non, je te laisse réfléchir pourquoi :)


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°2033384
narulepuis​san
Posté le 31-10-2010 à 21:33:45  profilanswer
 

justement, j'ai beau réfléchir je trouve pas ...
 
D'après un exemple,
 
"SELECT * FROM users WHERE user = '" . mysql_real_escape_string($user) . "' AND password = '" . mysql_real_escape_String($password) . "';
 
le PhP j'en fais depuis peu de temps ....
donc j'ai pas les bon réflexes ....

n°2033385
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 31-10-2010 à 21:53:19  profilanswer
 

"SELECT * FROM users WHERE user = '" . mysql_real_escape_string($user) . "' AND password = '" . mysql_real_escape_String($password) . "';  
 
Ca c'est déjà beaucoup plus juste. A toi de voir la différence entre ta ligne de code et celle que tu viens de poster. Indice: Ca a un rapport avec les guillemets :)


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
mood
Publicité
Posté le 31-10-2010 à 21:53:19  profilanswer
 

n°2033388
narulepuis​san
Posté le 31-10-2010 à 22:07:06  profilanswer
 

Oui mais moi c'est pas "SELECT * FROM  ....
 
mais "INSERT INTO ....
 
ça change pas quelque chose ?
 
PS: je suis pas fort en énigmes :(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  les ' dans un commentaires

 

Sujets relatifs
[HTML] Facebook social plugin // commentairesRequêtes SQL et commentaires
Commentaires et réponses (récursivité?)Un forum permettant de "noter" les commentaires des utilisateurs
Menu non gérable par commentaires conditionnelsSuppression auto des commentaires C/C++
si >10 commentaires alors nouvelle page[Eclipse] Commentaires JavaDoc automatiques
Masquer les commentaires à l'ouvertureSite web: permettre aux visiteurs de poster commentaires
Plus de sujets relatifs à : les ' dans un commentaires


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR