Aller au contenu

Problème accents php 5.6 sur Nas mais pas chez hébergeur


Messages recommandés

Bonjour à tous,

Je souhaite mettre mon site actuellement hébergé chez 1&1 sur mon nas. Suite aux différente alerte sur l'arrêt du php 5.5 il y a 3 ans j'avais préparé mon site pour php 5.6 et il tourne depuis sans problème.

Mais quand je le déménage sur mon Nas j'ai un problème sur tous les accents des textes stocké dans la base SQL. Sur Web station je suis bien en php 5.6 sur mon host (Avec la bêta on peu avoir plusieurs versions de PHP et choisir indépendamment sur chaque host)

Alors je ne comprends pas pourquoi cela marche chez 1&1 et même OVH ou j'ai une même base et pourquoi sur le Nas j'ai le problème.

J'ai essayé des truc comme convertir mes tables en UTF 8 mais c'est pire les accents ne son même plus enregistré.

Site actuellement en ligne http://rcpirate.fr/
Lien sur mon Nas: http://sebr.fr/rcpirate/

Auriez-vous une piste ? Merci.

Lien vers le commentaire
Partager sur d’autres sites

C'est bien d'un soucis d'encodage.

Je pense que ton export de la base est dans un certain format alors que tu as fait l'import dans un autre. De plus l'encodage de ton site n'est pas non plus précisé.

La première chose à faire est de déterminer l'encodage dans la base source (normalement c'est indiqué dans le dump).

Après tu as plusieurs manières de faire, selon que toutes les tables ont le même encodage ou non et selon la taille de la base.

À noter que même sur ton site actuel, tu as des soucis d'encodage (pas le même partout).

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse Fenrir, je ne l'a vois que maintenant car je n'ai pas eu de notification.

Ce qui est étrange c'est que quand je fais l'import / Export tous les accents son très bien dans la base de donnée mais c'est juste à la lecteur (sur le site) que les accents ne fonctionne pas.

J'ai testé ce que tu as dis, je fais en effet l'export en UTF-8 et l'importe en UTF-8. J'ai testé l'export / import en ISO-8859-1 comme indiqué dans mon fichier.

Citation

ini_set('default_charset', 'iso-8859-1');


function nkHtmlEntities($var){
    return htmlentities($var, ENT_QUOTES, 'ISO-8859-1' );
}
 
function nkHtmlEntityDecode($var){
    return html_entity_decode($var, ENT_QUOTES, 'ISO-8859-1' );
}
 
function nkHtmlSpecialChars($var){
    return htmlspecialchars($var, ENT_QUOTES, 'ISO-8859-1' );
}

 Mais là que quelques tables s'importe et j'ai des erreurs.

Citation

41 erreurs trouvées lors de l'analyse.

  1. Caractère inattendu. (near "\" at position 2167)
  2. Caractère inattendu. (near "\" at position 2169)
  3. Caractère inattendu. (near "\" at position 2171)
  4. Caractère inattendu. (near "\" at position 2173)
  5. Caractère inattendu. (near "\" at position 2176)
  6. Caractère inattendu. (near "\" at position 2178)
  7. Caractère inattendu. (near "\" at position 2180)
  8. Caractère inattendu. (near "\" at position 2182)
  9. Caractère inattendu. (near "\" at position 2261)

Tu m'indique que sur mon site actuel tout n'est pas dans le même encodage, comment vois-tu cela ? Car dans ma base l'interclasse de toutes mes tables est en: latin1_swedish_ci

Cela dépasse mes compétences donc merci de ton aide. Je continue mes recherches et mes tests.

Modifié par titis14
Lien vers le commentaire
Partager sur d’autres sites

La première chose à faire est de spécifier l'encodage de ton site, par exemple avec le meta charset. Si tu ne le fais pas, le navigateur va choisir l'encodage au hasard (en général il prend le premier qu'il trouve).

Il ne s'agissait pas d'exporter et encore moins de convertir la base dans tel ou tel format, mais de faire attention au format utilisé.

Ton soucis est simple mais compliqué :mrgreen:

Simple car c'est juste un pb d'encodage, compliqué car ce soucis peut intervenir à plein d'endroits :

  • données DANS les tables (ta base peut être en UTF8, les tables en latin1 et le texte dans les tables en autre chose)
  • encodage "par défaut" des tables
  • encodage "par défaut" de la base
  • encodage de tes fichiers (php/html/...)
  • encodage utilisé dans ton code
  • encodage de l’interpréteur (php ici)
  • encodage sur serveur web (c'est rarement un soucis)
  • encodage spécifié au navigateur

Si tout ça n'est pas en phase, des pb peuvent apparaitre (c'est ton cas).

Dans le cas présent, tu utilises un nucked-klan, un CMS notoirement connu pour avoir des soucis d'encodage (en particulier parce qu'il ne gère pas l'utf-8).

En cherchant 2 minutes, j'ai trouvé les pistes suivantes :

Lien vers le commentaire
Partager sur d’autres sites

Merci, problème résolu avec le premier lien, j'ai aussi connu le problème du lien vers le site de Nuked mais je l'avais corrigé en modifiant toutes les pages de mon site.

Donc pour régler ce problème j'ai ajouté la ligne :

mysql_query("SET NAMES 'latin1'");

Dans le fichier nuked.php sous la ligne :

Citation

   $db = mysql_connect($global['db_host'], $global['db_user'], $global['db_pass']) or die ("<div style=\"text-align: center;\">Error ! Database connexion failed<br />Check your user's name/password</div>");

Même si cela fonctionner, j'ai ajouté cette même ligne dans le fichier "/modules/Admin/class/iam_backup.php" à la ligne

Citation

$result = mysql_connect("$this->host","$this->dbuser","$this->dbpass");

comme indiqué dans le sujet.

Donc un grand merci à toi pour ton aide.

Maintenant reste à comprendre pourquoi les images de mes articles ne s'affiche pas dans certains articles alors que le lien et bon et que l'image et bien sur le serveur.

 

Modifié par titis14
Lien vers le commentaire
Partager sur d’autres sites

Justement j'avais vu cela dans un de tes lien et j'ai regardé je vais voir cela.

J'ai trouvé, dans ma balise bbcode certain on le / au début et cela ne fonctionne pas et d'autres non vu que mon lien et http://sebr.fr/rcpirate/ cela fait un double / donc une fois mon domaine redirigé je n'aurais plus le problème.

 

 

Modifié par titis14
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.