supinfo
Ouverture de  SUPINFO USA à San Francisco en 2008. Des études en informatique en Californie à un tarif abordable ! Inscrivez-vous dès maintenant !
supinfo
Connexion :

Recherche

  
   Tout| Actus| Télécharger| Comparateur de prix| Dossiers| Forums| Jeux| Google

9 messages
ok
Voir profilContacter le membre

Erreur dans Syntaxe MYSQL

bjr a tous,

g un blème avec ma page de validation de mon formulaire,voici l'erreur qui s'affiche:

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
l'hebergeur utilise le PHP 4.0
je pense que c'est quand l'utilisateur entre le caractère apostrophe que cette erreur s'affiche.

Merci d'avance
 
 
Salut,
Tu ne donnes pas assez d'information. Il nous faudrait un peu de code si tu souhaites de l'aide :)
 
 
Voir profilContacter le membre
Voici le code

<?
mysql_connect('db.nnx.com','dataaude','EA2S-HHBVE') or die('Error, connection failed');
mysql_select_db('dataaude') or die('Error, database connexion failed');
function Newdate(){
$date = date("d-m-Y");
$dh= $date;
return($dh);}
function Newtime(){
$time = date("h:i:s");
$th= $time;
return($th);}
$nom;
$prenom;
$telephone;
$societe;
$email;
$textarea;
$sujet2;
$time=newtime('$th');
$date=newdate('$dh');
/*$sql = 'INSERT INTO `Besoins` ( `nom` , `prenom` , `telephone` , `societe` , `email` , `sujet` , `textarea` , `date` , `heure` ) ';
$sql .= 'VALUES ( '$nom', '$prenom', '$tel', '$societe', '$email', '$subject', '$message', '$date', '$time')';*/

$requete="INSERT INTO `Besoins` ( `nom` , `prenom` , `telephone` , `societe` , `email` , `sujet` , `textarea` , `date` , `heure` ) VALUES ('$nom', '$prenom', '$telephone', '$societe', '$email', '$sujet2', '$textarea', '$date', '$time')";
mysql_query( $requete ) or die(mysql_error());
?>

lorsque dans la variable $textarea il ya un apostrophe.l'erreur précédamment défini s'affiche.
 
 
Fais une recherche sur "injection SQL" dans google, et renseigne toi sur la fonction mysql_real_escape_string.

Ton problème se situe là.

-->

Code :
$requete="INSERT INTO `Besoins` ( `nom` , `prenom` , `telephone` , `societe` , `email` , `sujet` , `textarea` , `date` , `heure` ) VALUES ('" . mysql_real_escape_string($nom) . "', '$prenom', '$telephone', '$societe', '$email', '$sujet2', '$textarea', '$date', '$time')";


Etc.
 
 
Voir profilContacter le membre
Merci je fait la recherche et je te tient informer après recherche
 
 
Voir profilContacter le membre
je le met mais il ne fonctionne tjrs pas
 
 
Code :
$requete="INSERT INTO `Besoins` ( `nom` , `prenom` , `telephone` , `societe` , `email` , `sujet` , `textarea` , `date` , `heure` ) VALUES ('$nom', '$prenom', '$telephone', '$societe', '$email', '$sujet2', '".addslashes($textarea)."', '$date', '$time')";


C'est normal, le fait qu'il y ai un ' dans textarea va couper la chaine $requete. La fonction addslashes va ajouter des \ avant ces apostrophes. Il existe aussi la fonction stripslashes().
Edité le 10/10/2007 à 16:25
 
 
arrêtez d'utiliser addslashes, c'est une protection partielle; il est plus recommandé d'utiliser mysql_real_escape_string

La différence est clairement explicitée dans les définitions :
addslashes
mysql_real_escape_string
 
 
C'est exact
 
 
 
9 messages
ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires:


 
Clubic.com
 
Achetez-facile.com
 
Jeuxvideo.fr
 
neteco.com
 
mobinaute.com