Salut à tous !
Voilà je viens ici mais je ne suis pas sûr que je sois au bon endroit, mon coeur balance entre le forum php ou mysql...

Voici le coeur de mon problème,
J'ai réalisé un site web pour mon mariage, sur une des pages de ce site j'ai installé un script php livre d'or signatux.
Il s'avère que les messages postés sur ce livre d'or ne s'affichaient pas. Avec un peu de recherche, je me rends compte qu'ils sont bien transmis à ma BDD, et que c'est leur affichage qui n'est pas pris en compte par signatux. Je recherche encore un peu et je me rends compte que ce sont les messages contenant des lettres avec accent qui empêchent l'affichage du message en entier. Si je modifie les messages en enlevant les lettre avec accent, ils s'affichent.

Sachant que le charset de ma page est du iso-8859-1
celui de ma base de donnée du UTF8_unicode_ci

J'ai modifié en vain un peu tout et ça ne change rien. Quelqun aurait il une idée d'où cela pourrait provenir ?

D'avance merci pour vos réponses

7 réponses


J'aimerais bien pouvoir te donner tous le script mais il est sur plusieurs fichiers...
Si tu veux voir le code de la page.

define('SGTUX_ROOT','signatux/'); // Chemin du dossier
    define('SGTUX', TRUE);

    if(!file_exists(SGTUX_ROOT.'chmod/install.lock') && !file_exists(SGTUX_ROOT.'chmod/config.inc.php')) {
        echo 'Signatux is not installed, or the path of <em>signatux/</em> folder is wrong.<br />';
        if(file_exists(SGTUX_ROOT.'install'))
            exit('<a href="'.SGTUX_ROOT.'install">Click-here</a> for install.');
        else
            exit('The <em>install/</em> folder has been deleted.');
    }

    require_once(SGTUX_ROOT.'header.php');

    switch($signatux->config['Liens']['Ouverture']) {
        case 'self':
        case 'javascript':
            echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'."\n"; break;
        case 'blank':
            echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'."\n";
    }
?>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
    <title>Livre d'or</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <?php sgtux_header() ?>
    <link rel="stylesheet" href="style2.css" />
</head>

<body>
    <div class="bloc_page">
            <div id="header"></div>
            <div class="menu">
                <div class="nav">
                    <ul>
                        <li><a href="index.html">Accueil</a></li>
                        <li><a href="lemariage.html">Le mariage</a></li>
                        <li><a href="seloger.html">Se loger</a></li>
                        <li><a href="contactform.php">Contact</a></li>
                        <li><a href="livreor.php">Un mot</a></li>
                    </ul>
                </div>
            </div>
            <div class="wrap">
                <div class="content_head"></div>
                <div class="page">
                    <div class="article">
                        <div class="vignette">
                            <a href="#" class="photo"><img src="img/photo1.jpg" alt="audreyetgauvain"/></a>
                        </div> 
                        <p>Ici c'est notre livre d'or, si vous souhaitez nous laisser un message, n'h?sitez pas ?</p>
                        <?php signatux() ?>                           
                    </div> 
                </div>
                <div class="content_foot"></div>
            </div>           
                <div class="footer_content">
                    <ul>
                        <li>&#169; les Gauvrey's 2014</li>
                        <li><img src="img/tandem.png" alt="tandem"/></li>
                        <li>R?alis? sous Sublime</li>
                    </ul>
                </div>
        </div>
</body>
</html>

Question bête, si Signatux travaille en UTF-8, ta page ne doit-elle pas être elle aussi en UTF-8 ?

Salut !
C'est aussi ce que j'ai pensé ! Donc j'ai changé le charset en UTF8 mais rien à faire.
ça ne fonctionne toujours pas...

Bonsoir,

Encodage des pages en UTF-8 et dans la BDD cela doit ête en utf8_general_ci

Malgré tous ces changements, rien ne fonctionne.
Merci quand même pour les réponses...

Si vous tentez de lire les précédentes données c'est normal que cela ne fonctionne pas. Insérer de nouvelles données et vous ne devriez plus avoir de problème.

Essai $bdd->exec("SET CHARACTER SET utf8"); et après dans ta bdd choisi un encodage utf8_general_ci comme la dit Carouge

Si ça ne marche pas remplace <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> en plus (je ne suis pas sur pour ça par contre)