By: nico69
Date: 2014-08-18
Time: 10:26
|
Champ non visibleBonjour,
J'ai un petit problème lié à UTF8: - Ma BDD est en UTF8 - Les champs textes de ma table sont en UTF8 - Mon fichier PHP est en UTF8 - Mon template html est en utf8 et il contient bien <meta http-equiv="content-type" content="text/html; charset=utf-8" /> Je débute mon fichier php ainsi: include_once('biblio/tbs_class.php'); include_once('biblio/plugins/tbs_plugin_html.php'); // Plug-in for selecting HTML items. include_once('biblio/sql.php'); $link = mysqli_connect($host,$user,$password,$bdd) or die("Error " . mysqli_error($link)); $mysqli = new mysqli($host,$user,$password,$bdd); if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); } $mysqli->query("SET NAMES 'utf8'"); Puis: $TBS = new clsTinyButStrong; $TBS->LoadTemplate('template/mapage.html'); $TBS->MergeBlock('blk',$link,'SELECT * FROM `ma_table`'); $TBS->MergeBlock('blk2',$link,'SELECT * FROM `ma_table`'); $TBS->Show(); Ma table contient: id_table nom adresse 1 dupond rue de la gare 2 durand la rue à coté de "là bas" mon fichier mapage.html <table> <tr> <td>[blk.nom;block=tr]</td><td>[blk.adresse]</td> </tr> </table> <table> <tr> <td>nom</td><td><input type="text" name="nom" value="[blk2.nom;block=table]</td> </tr> <tr> <td>adresse</td><td><input type="text" name="adresse" value="[blk2.adresse]</td> </tr> </table> Le premier enregistrement va s'afficher sans problème dans mon td et dans l'input... Par contre mon deuxième ne s'affiche pas du tout dans les deux cas. Si j'ajoute strconv=utf8 les deux s'affiches bien dans le td mais dans l'input il s’arrête à la guillemet (non converti en html...) Je vois pas comment faire. Merci de m'aider... PS: Le code HTML est juste pour faire part du problème lié au UTF8.. |
|
By: Skrol29
Date: 2014-08-18
Time: 11:11
|
Re: Champ non visibleSalut,
As-tu essayé
Doc : http://www.tinybutstrong.com/manual.php#php_loadtemplate |
|
By: nico69
Date: 2014-08-18
Time: 11:43
|
Re: Champ non visibleOui, et ça ne fonctionne pas mieux.
J'ai aussi fait: $resultat = $TBS->MergeBlock('blk',$link,'SELECT * FROM `ma_table`'); var_export($resultat); exit; Et tous les caractères accentués ou "ç" apparaissent "Derri�re" |
|
By: Skrol29
Date: 2014-08-18
Time: 12:49
|
Re: Champ non visibleTa conf UTF-8 est complètement traditionnelle (Bdd + script PHP + template), c'est même le cas de ce forum.
Mais il semble que ta page HTML finale contient des caractère Latin2 au lieu d'UTF-8. Vérifie ton chaînage UTF-8. En particulier vérifie en appliquant un $mysqli->set_charset("utf8"); Voir explications : http://www.gaudry.be/ast-rf-431.html et là: http://php.net/manual/fr/mysqli.set-charset.php |
|
By: nico69
Date: 2014-08-18
Time: 16:49
|
Re: Champ non visibleBon, des fois je me sens très bête...
Au début de mon script, je fais deux connexion: - Une en procédurale $link - Une en poo $mysqli J'ai bien fait: $mysqli->query("SET NAMES 'utf8'"); mais pas pour le $link.... et comme mon merge se servait du procédural... ben forcément ça marche pô... Donc pourquoi faire simple quand on peut faire compliqué????? J'ai viré le procédural, et mon merge je le fait avec le $mysqli et la miracle... mes accents apparaissent!!! Désolé pour le dérangement Bonne continuation... PS: les videos mise en ligne sur Youtube (Skrol29) sont d'un bon intérêt délirant ;-) Bravo!!! |
|
By: Skrol29
Date: 2014-08-18
Time: 18:20
|
Re: Champ non visible> PS: les videos mise en ligne sur Youtube (Skrol29) sont d'un bon intérêt délirant ;-) Bravo!!!
Merci, tout le monde n'avais pas capté leur humour à l'époque. |