[RESOLU] Bug insertion dans la base de donnée avec les apostrophe

Eléphant du PHP | 111 Messages

20 oct. 2013, 10:48

Bonjour, j'ai se code :
<?php
//connection au serveur:
    $cnx = mysql_connect( "", "", "" ) ;
 
    //sélection de la base de données:
    $db = mysql_select_db( "" ) ;
	mysql_query("SET NAMES 'utf8'"); 
	$id_membre = $_POST['id_membre'];
	$titre = $_POST['titre'];
	$cle = $_POST['cle'];
	$categorie = $_POST['categorie'];
	$description = $_POST['Description']; 
	$texte = $_POST['texte'];
	$lien = $_POST['lien'];
	
	$sql = "INSERT INTO contenu (id_membre,titre,cle,categorie,description,texte,lien) VALUES ('$id_membre','$titre','$cle','$categorie','$description','$texte','$lien')";
	
	$requete = mysql_query($sql, $cnx) or die(mysql_error());
	
	if($requete)
	{
		echo("Fait! Retourner à l'<a href='index.php'>accueil</a>");
	
	}else{
		echo("Erreur !");
		
	}
	
   
 
 ?>
J'ajoute du texte sa marche nikel a part quand il y a une apostrophe, il y a une erreur.

Comment la régler ?

Merci beaucoup

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 oct. 2013, 10:56

Salut,


Je suppose que cela est la validation d'un formulaire ?
Si oui je t'invite a regarder ces tutos
http://www.lephpfacile.com/cours/8-recu ... ormulaires
http://phpdebutant.org/article56.php
Et surtout varrizble auto déclarée pourquoi c'est le mal

Quand a ton problème c'est le même que pour l'injection sql il faut 'échapper' tex données (donc les ' qui délimite les chaîne de caractères en sql).

Pour cela utilise la fonction mysql_escape_string.


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 111 Messages

20 oct. 2013, 17:31

Merci beaucoup :D