Addslashes et stripslashes

Bonjour j’ai un petit probleme que je vous explique tout de suite.
Je récupère une variable $titre d’un formulaire et je l’insers dans ma bdd à l’aide d’un addslashes. Le problème est que quand je veux l’afficher à l’aide d’un stripslashes les “” sont toujours présents.

J’ai regardé les magic_quote etaient sur off alors je les mis sur on et je n’ai plus que le titre qui s’affiche alors je les ai remis sur off et tout s’affiche de nouveau sauf que dans le titre il y a encore les antislashes.

Qu’est ce que je pourrai faire?
Edité le 07/09/2007 à 11:23

Il ne faut pas utiliser addslashes mais mysql_real_escape_string (pour mySQL) pour échapper les chaînes. Si les magic_quotes sont à on (=mal), alors il fera un stripslashes.pour éviter d’insérer une chaîne protégée en BDD.

Si tu as des antislashs, c’est certainement parce que tes données sont envoyées avec les antislashes, et qu’elles sont stockées telles quelle. Maintenant, si tu es sûr que tu ne double protèges pas (car c’est ce que tu as du faire), c’est que des anciennes données contiennent toujours des antislashes, reste de ton bug:)

J’ai mis les magic_quotes sur Off et je n’ai plus que le titre ( mais sans " \ " ) qui s’affiche. Le reste ne s’affiche pas.
Il faut que je mette les magic_quotes sur on ou off?
$titre est une variable que je recupere avec un _POST à partir d’un fichier.
Je ne peux pas te dire si je double preotege ou pas car je ne sais pas comment on fait mais en tous cas ce n’etait pas dans mon intention.
Peux tu me dire quoi faire stp??

Magicquote doit être sur off, absolument.

Je doute pouvoir t’aider sans une seule ligne de code, car je ne sais pas ce que tu fais en définitive.

oki alors je vais t’afficher le code correspondant :

formulaire :

<p style="margin-top:20px"><form name="dconseil" method="POST" action="enregconseil.php">
<p>Titre: <input type="text" name="titre" style="width:700px"></p>

insertion base de données:

$titre=$_POST['titre'];
$titre=mysql_real_escape_string($titre);
$req2="insert into conseil (  titre ) values ('".$titre."')";
$result2=mysql_query($req2) or die (mysql_error());

j’ai fait une liste sur une page qui code le code suivant:

$req="select titre from conseil where genre ='".$genre."'";
$result=mysql_query($req) or die (mysql_error());
echo'<p align="center">Pour afficher un conseil et y répondre cliquez sur son nom.</p>';
while($data=mysql_fetch_array($result)){
	echo'<p><a href="viewconseil.php?titre='.$data['titre'].'">'.stripslashes($data['titre']).'</a></p>';
}

jusque là pas de probleme d’affichage.

mais quand je veux afficher le conseil :

$conseil=$_GET['titre'];
$req="select  titre from conseil where titre='".$conseil."'";
$result=mysql_query($req) or die (mysql_error());
$conseil2=stripslashes($conseil);
echo'<p align="center">'.$conseil2.'</p>';

Il y a les " \ ". Pourtant lorsque je créé ma liste ils ne sont pas présents dans le titre…
Actuellement les magic_quotes sont sur off et il n’y a pas les " \ " seulement ce qu’il y a d’autre sur la page ( et qui s’affiche correctement quand les magic_quotes sont sur on ) ne s’affiche plus.

Ps: voici mon php.ini

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

Edité le 07/09/2007 à 10:11

Probleme résolu merci pour votre aide