8768 sujets

Développement web côté serveur, CMS

J'ai un soucis quand je modifie ma base de données avec un update.

Pour enregistrer mes valeurs dont certaines ont des accents et guillemets, j'ai ajouté un addslashes
<input name="sujet" type="text" />


Et la valeur est récupérée ainsi
$sujet= addslashes($_POST['sujet']); 

avant d'être correctement enregistrée dans la base de données, même si ma valeur comporte guillemets ou accents.

Pour l'update, j'ai ajouté un htmlentities
<input name="sujet" type="text" value="<?php echo htmlentities($rows['sujet']); ?>">


Certaines valeurs s'affichent normalement dans le champ input. Mais dans la majorité des cas, ce champ est vide. Ça semble totalement aléatoire. Et cela touche aussi bien des valeurs avec présence de guillemets et accents, que pas du tout.

Avez vous une idée de l'origine de mon problème ? Merci de me mettre sur la voie Smiley smile
Modifié par daggoon (04 Oct 2015 - 15:09)
Quand j'utilise
 echo htmlentities(var_dump($rows['sujet'])); 

ça m'affiche dans le champ input

  string(...)  


avec un nombre dans la parenthèse.
Modifié par daggoon (03 Oct 2015 - 14:10)
Après vérification, mes champs sont vides quand il y a des accents comme é à ê ë...etc...
La variable s'affiche correctement s'il y a des guillemets mais pas de lettres avec accent
Finalement j'ai résolu mon problème !

Pour enregistrer mes valeurs
<input name="sujet" type="text" />

dont certaines ont des accents et guillemets, j'ai donc un addslashes
$sujet= addslashes($_POST['sujet']); 

Pour l'update, j'ai finalement mis :
<input name="sujet" type="text" value="<?php echo htmlentities($rows['sujet'], ENT_QUOTES, 'iso-8859-1'); ?>">

Smiley cligne