arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007
-
23 mars 2006 à 19:55
arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007
-
24 mars 2006 à 16:26
Bonjour à tous,
J'ai un site web stocké chez un hébergeur, qui utilise phpmyadmin 2.7.0-pl1 avec mysql 4.0.13, global_register=on
J'ai cru comprendre que dans les versions suivantes de mysql, le register_global est à off.
Pour éviter tout problème le moment venu, je souhaite travailler en local avec phpmyadmin et register_global à off.
J'utilise phpmyadmin 2.6.1 avec mysql 4.1.9. en local.
Et là ça commence très mal...
sur le serveur, je n'ai pas d'interclassement et j'utilise le jeu de caractère French (fr-iso-8859-1)
en local, je suis en French (fr-utf-8) et j'ai un interclassement latin1_swedish_ci
Résultat, tous les accents sont remplacés par des ? et c'est le bord.... !
Impossible de savoir comment modifier le jeu de caractère.
2ème problème :
Ma page d'accueil est une page d'authentification par session (impossible d'accèder aux pages du site si l'on n'est pas un utilisateur enregistré).
Sur le serveur, l'authentification fonctionne au poil.
En local, je ne peux pas accéder aux pages, l'authentification est refusée.
Est-ce que ces 2 problèmes ont un rapport ?
Si, oui, comment y remédier ?
Je vous fourni le code complet de la page d'index si vous le souhaitez.
Merci de vos réponses
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201418 24 mars 2006 à 14:02
Salut,
j'ai un projet avec a peu près la même configuration
Pour le developpement en local, j'ai installé easyphp (easyphp.org). Ca s'installe tout seul, et le register_global est dejà a off.
La base est trilingue (français-anglais-russe). J'ai crée une base avec un interclassement utf8. Chez l'herbegeur, tout est configuré au poil.
Pour le pb de session je vois pas peut être qu'avec un peu de code...
arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007 24 mars 2006 à 14:18
Merci de ta réponse.
J'ai aussi installé easyphp en local (pas précisé dans le précédent message).
Le register_global est à off et error_reporting à E_ALL.
le problème vient de la config de mysql et du jeu de caractère.
Chez mon hébergeur, j'ai pas d'option d'interclassement. Sous phpmyadmin en local, j'ai cette possibilité mais je n'en veux pas !
Je voudrai savoir quelle variable doit être modifiée pour que cela n'apparaisse plus.
Pour le problème de session, c'est un problème de codage et de passage de variables. J'y travaille actuellement
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201418 24 mars 2006 à 14:39
Tu ne veux plus avoir le choix de l'interclassement de ta base ?
Je ne vois pas très bien ce que tu veux dire ... Si tes deux bases (test et prod) n'ont pas le meme interclassement, il ne risque pas d'y avoir des soucis ?
Dans mon cas, j'ai eu un soucis similaire à savoir, l'interface myadmin de l'herbergeur étant plus reduite que la mienne, je n'avais pas accès au choix de l'interclassement. Mais il n'y a eu aucun problème lors des premiers test... Je n'ai changer aucune variable particuliere. Alors je ne vois pas. A mon avis passe tout en utf8. ou sur ce que l'herbegeur impose...
arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007 24 mars 2006 à 14:49
Je vais essayer d'être un peu plus clair :
en local : sur la page d'index de phpmyadmin (http://127.0.0.1/mysql/index.php), j'ai comme language French fr-utf-8 et le choix d'un interclassement (pour l'instant latin1_swedish_ci)
Dans ma base, tous mes caractères accentués sont remplacés par des '?'
sur le serveur : j'ai comme language Franch fr-iso-8859-1 et aucun choix d'interclassement (comme ça je suis pas embêté). Tous les caractères accentués s'affichent correctement.
Je cherche donc à résoudre ce problème de caractère en local donc à trouver la bonne config de phpmyadmin.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201418 24 mars 2006 à 15:38
Le soucis que j'ai eu était similaire. A savoir lors de mise à jour par formulaire, la partie russe arrivait du serveur correctement et s'affichait bien en russe, mais dès que j'envoyais le formulaire celui ci envoyait des ? à la place des caractères russes qui étaient enregistrés dans la base aussi au retour des formulaire je me retrouvais avec des ? partout.
j'avais oublié de spécifier
<meta http-equiv="Content-Type" content="text/html; charset=utf-8 />
dans les forumlaires.
Peut etre quen remplacant par utf-8 par iso-8859-1 dans ton cas
arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007 24 mars 2006 à 15:51
Je suis déjà en <meta http-equiv"Content-Type" content"text/html; charset=iso-8859-1">
Si je change dans ma page web, j't'explique pas le bazar. Je me retrouve avec du chinois de partout.
Les caractères accentués s'affichent hormis tous ceux qui proviennent de la BDD.
Dans la BDD, tous les accents sont remplacés par des ? (je me répète non ?)
par ex : 'arrivée' est stocké sous 'arriv?e' dans la BDD et donc s'affiche 'arriv?é' sur le site.
Maintenant si je remplace, 'arriv?e' par 'arrivée' dans la BDD, plus de pbs. Mais j'y suis encore l'année prochaine lol.
Sinon, c peut être un problème lors de l'import des tables.
J'ai exporter les tables depuis mon serveur (en fr-iso-8859-1) et je les importe en local en fr-utf-8.
Donc déjà, y'a un problème.
Seulement, je n'ai pas la possibilité de changer pour fr-iso-8859-1 en local, sinon je pense que tout rentrerai dans l'ordre.
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201418 24 mars 2006 à 15:56
commande sql permettant de forcer l'interclassement de ta connexion :
SET NAMES="iso-8859-1" (je ne me souviens plus exactement de la syntaxe)
mysql_query("SET NAMES = blabla");
essayes ça
arnold002
Messages postés121Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention 5 mars 2007 24 mars 2006 à 16:13
J'ai refait un essai.
Le problème est partiellement résolu.
Je crée ma BDD en indiquant fr-utf-8 en interclassement
Ensuite, j'importe mon fichier sql contenant toutes mes tables (emplacement du fichier texte, parcourir, compression du fichier texte en automatique et ....jeu de caractères du fichier (par défaut utf-8) j'indique latin1
Et là miracle... Tous mes caractères accentués s'affichent... accentués !
Bon, ça marche pas pour toutes les tables.
J'ai un forum phpbb et certaines tables me posent problème. Le jeu de caractère doit encore être différent.
J'ai un message d'erreur très complexe (à mon niveau)
Notice: Undefined offset: 1 in d:\sites web\easyphp1-8\phpmyadmin\libraries\common.lib.php on line 681
Notice: Undefined offset: 1 in d:\sites web\easyphp1-8\phpmyadmin\libraries\common.lib.php on line 685
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in d:\sites web\easyphp1-8\phpmyadmin\libraries\common.lib.php on line 685
Mais bon, je peux m'en passer dans l'immédiat. Verra ça plus tard.
En tout cas, merci beaucoup de ton aide.