Aller au contenu

Sujets conseillés

Posté

Bonjour,

J'ai une base de donnes qui me pose problème puisque je desire modifier certains champs afin de rajouter un anti-slash devant tout lesguillemets qui existent.

Pour cela, j'ai fait une petite page qui va me modifier ca j'affiche la valeur de la table avant et apres la modification avec ce code :

for($i=0;$i<30;$i++){
print '<strong>Avant l\'envoi</strong><br />';

$resultat = mysql_query("
SELECT id, texte
FROM mabase
WHERE id='".$i."'") or mysql_error();

$donnees = mysql_fetch_array($resultat);
$texte = addslashes($donnees['texte']);
print $donnees['texte'].'<br /><br /><br /><br /><br /><strong>Une fois envoyé a la base de données </strong><br />';

mysql_query("
UPDATE mabase
SET texte = '".$texte."'
WHERE id='".$donnees['id']."'") or die(mysql_error());

//affichage des modif
$resultat = mysql_query("
SELECT texte
FROM mabase
WHERE id='".$i."'") or mysql_error();

$donnees = mysql_fetch_array($resultat);
print $donnees['texte'].'<br /><br /><br />';
}

La modification est faite comme il faut et envoyé a la base de données seulement la base de donner ne garde pas les antislash :( .

Comment cela ce fait ils ?

Posté

C'est entièrement logique, les caractères d'échappement sont supprimés dès l'insertion en BDD. Pour les garder dans ta base, il faut normalement faire un 2ème addslashes :

$texte = addslashes(addslashes($donnees['texte']));

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...