Je travaille actuellement sur l'interface admin de l'un de mes sites web, et je faiis face à un pb assez surprenant... Je vais essayer de faire simple!
J'ai créé mon IA en essayant tant bien que mal de suivre le modèle MVC. J'ai dans cette IA une catégorie qui contient 8 sous catégories qui fonctionnent plus ou moins de la même manière. Il existe une page (vue) et un contrôleur pour chacune de ces sous-catégories. Les contrôleurs se ressemblent énormément, c'est le ciblage qui les différencie principalement. Donc pour les faire plus rapidement, j'ai fait la première page/contrôleur à la main et j'ai réutilisé ce "modèle" en le renommant selon les catégories et en modifiant les 2/3 ptits trucs qui devaient être modifiés.
Tout se passait très bien jusqu'à présent. J'arrive à la dernière catégorie et la BAm, problème! L'une des données que je récupère de mon formulaire ne semble pas être en utf8. Je précise tout de même que tout mes fichiers sont en utf-8 et que même si j'en était sure, je les ai tous reconvertit en utf-8 sans bom, au cas ou! la valeur des champs de mon formulaire et récupérée dans un xml, lui aussi en utf-8. Voici le message d'erreur que j'obtiens lorsque je lance le traitement :
Warning: DOMElement::setAttribute() [domelement.setattribute]: string is not in UTF-8 ........ on line 86.
Conséquences -> mon xml se convertit en iso. Mais surtout je perd une grande partie des données contenues dans mon xml!! Un truc de fou!
Je mets un peu de code pour que ce soit plus clair :
Code : Tout sélectionner
// LA VUE
//Il manque des infos , je ne vais pas tout mettre... $boxes-> XMLList ; $idBox -> l'indice de la box que je récupère grâce à un GET
$titre = $boxes->item($idBox)->getAttribute('nom');
<form action="#" method="post" enctype="multipart/form-data" name="formulaire3" onsubmit="return verifFormMod(this)">
<div class="labForm">Nom : </div>
<input type="text" class="text" id="txt1" name="titre" value="<?php echo $titre?>"/>
// Je passe les autres input qui eux ne pose pas de problème...
<div class="editBar">
<input type="submit" name="modifier" value="Valider" class="submit"/>
<a href="../pages/galerieProjets.php"><input type="button" name="annuler" value="Annuler" class="submit"/></a>
</div>
</form>
Code : Tout sélectionner
// LE CONTROLEUR
if (isset($_POST['titre'])) {
$titre = $_POST['titre'];
$nomMini = strtolower($titre).'Mini';
}
$newBox->setAttribute('nomMini', $nomMini); // La fameuse ligne 86