Problème de balises 'br' et '\' lors d'insertion texte dans BDD

Bonjour à tous,

Voilà donc mon problème assez génant:
J’ai plusieurs champs texte qui permettent de mettre à jour une base de données sous php myadmin. Les données se mettent bien à jour mais à chaque mise à jour des balises
et des \ devant les accents s’ajoutent ce qui rend le texte vite illisible:(

Voici donc un extrait de mon code, j’aimerai donc que les balises
et \ disparaissent des champs texte.
Merci :slight_smile:


<form method="post" action="accueil.php">
  	<?php
	 if(isset($_POST['maj'])){
	                      // on se connecte à MySQL 
		 $base = mysql_connect ('chaine connexion');
		 // requete de MAJ
		 $sql = 'UPDATE accueil SET titre_accueil=\''.mysql_escape_string($_POST['titre']).'\' , texte_accueil=\''.mysql_escape_string($_POST['text']).'\' WHERE id_accueil= 1';
                                            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
		 echo '<font color="green"><b>Page modifi&eacute;e avec succ&egrave;s!</b></font>';
		 }
		 else{ 
            	                      $erreur = '<font color="red"><b>Probleme!!!.</b></font>'; 
        		} 
	?>
    
	<?php 
		// on se connecte à MySQL 
			$base = mysql_connect ('chaine connexion');
		// on crée la requête SQL 
		                     $sql = 'SELECT * FROM accueil'; 
		// on envoie la requête 
		                     $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
		// on fait une boucle qui va faire un tour pour chaque enregistrement 
		                     while($data = mysql_fetch_assoc($req)) 
			{ 
			// on affiche les informations de l'enregistrement en cours 
			          echo '<textarea name="titre" cols="100" rows="1" width="300">'.$data['titre_accueil'].'</textarea><br />';
			          echo nl2br ('<textarea name="text" id="text" cols="100" rows="10" width="300" >'.$data['texte_accueil'].'</textarea>');
			}
	?>

J’ai remplacé nl2br par

echo str_replace("
",“n”,(’’.$data[‘texte_accueil’].’’));

Maintenant les br ne s’affiche plus mais il y a toujours le problème des ’ qui se voit rajouté un devant eux :s

j’ai réussi grace à une fonction en php,

Pour ceux que çà peut aider:

Faire une fonction:


    <?php
    function RecupChaine($chaine) { 
	if (get_magic_quotes_gpc()==1) return stripslashes($chaine); // il y avait magic 
	return $chaine; // il n'y avait pas magic 
	} 
    ?>

et dans la requete:


mysql_real_escape_string(RecupChaine($_POST['titre']))
;)