Pb Apache: pb avec éèùàê

pimos Messages postés 27 Statut Membre -  
 bob031 -
Bonjour,

J'ai un soucis avec Apache:
j'ai deux environnements identique avec une différence:
le premier env: _ENV["LANG"]=fr_FR
le second env : _ENV["LANG"]=en_US

PHP 4.2.3
Apache 1.3.26

Avec mon applis PHP:
1er env:
je saisie "testé" (insertion base) et l'affichage de la liste donne "testé"
2nd env:
je saisie "testé" (insertion base) et l'affichage de la liste donne "test?"
(l'env 2 bouffe les accents éàèùê)

Je pense donc que mon problème viend de la langue du serveur.
Comment puis-je modifier la langue de mon deuxième environnement?

Je rame depuis plusieurs jours donc si vous avez une piste, une idée... Je prends!

Merci
A voir également:

57 réponses

pimos Messages postés 27 Statut Membre
 
Oracle

oci8
OCI8 Support enabled
Revision $Revision: 1.169.2.3 $
Oracle Version 8.1
Compile-time ORACLE_HOME /produits/xoracl/put/prd/8.1.7
Libraries Used


0
pimos Messages postés 27 Statut Membre
 
En tout cas Merci à tous pour votre emplication.
Je continue à chercher....
0
poumiZ Messages postés 103 Statut Membre 10
 
je te donne la requête qui va bien pour connaître le NLS de ta base:
SELECT t1.value ||'_'|| t2.value ||'.'|| t3.value AS export_NLS_LANG 
FROM v$nls_parameters t1, v$nls_parameters t2, v$nls_parameters t3 
WHERE t1.parameter='NLS_LANGUAGE' 
 AND t2.parameter='NLS_TERRITORY' 
 AND t3.parameter='NLS_CHARACTERSET';
0
pimos Messages postés 27 Statut Membre
 
cela ne fonctionne pas dans Oracle.

ni dans PHP:
Warning: OCIStmtExecute: ORA-00942: table or view does not exist in /applis/rincom/pur/htm/intracom/portail/administration/gestion.flashs.institutions.php on line 152

Warning: OCIFetchStatement: ORA-24374: define not done before fetch or execute and fetch in /applis/rincom/pur/htm/intracom/portail/administration/gestion.flashs.institutions.php on line 153
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
poumiZ Messages postés 103 Statut Membre 10
 
connecte-toi par sqlplus:
sqlplus user/passwd@Instance
0
kelux Messages postés 3267 Statut Contributeur 432
 
Les bases et moi ca fait 2 :)

désolé :)

0
pimos Messages postés 27 Statut Membre
 
Export_NLS_Lang = FRENCH_FRANCE.WE8ISO8859P15

donc c'est OK
0
pimos Messages postés 27 Statut Membre
 
Peut être un paramètre OCI???

c'est du chinois pour vous? moi aussi! ;o)
0
poumiZ Messages postés 103 Statut Membre 10
 
Tu dis que tu as 2 env identiques mise à part la différence des langues.
Peux-tu exécuter cette commande pour tes 2 environnements: récupère le nom du user chargé du run de httpd (ligne User de ton httpd.conf), wwwrun chez moi:
ps eww wwwrun

Regarde le paramètre LANG
0
pimos Messages postés 27 Statut Membre
 
env KO 120.92

ps eww www _=/usr/bin/ps LANG=fr_FR ...
phpinfo.php= _ENV["LANG"] en_US
-----------------------------------------------------------------------
env OK 151.191

ps eww www _=/usr/bin/ps LANG=en_US ....
phpinfo.php= _ENV["LANG"] LANG fr_FR
-----------------------------------------------------------------------

Et voilà autre chose!!!
0
poumiZ Messages postés 103 Statut Membre 10
 
j'en déduis que ce n'est pas ton environnement Apache qui met le souk, mais ton environnement php...
0
pimos Messages postés 27 Statut Membre
 
Une piste???
0
poumiZ Messages postés 103 Statut Membre 10
 
Tes environnements: sur deux serveurs différents ?
Quels sont les paramètres régionaux?
Regarde le paramètre RC_LANG dans ton fichier /etc/sysconfig/language
0
poumiZ Messages postés 103 Statut Membre 10
 
Je ne pense pas que ce soit une bonne piste.
Ton module php, est-ce toi qui l'a compilé, ou bien tu l'as récupéré par rpm ou autre. Peut-être que lors de la compil, le module prend le langage par défaut de la machine où ça compile...
0
pimos Messages postés 27 Statut Membre
 
c'est quoi le eww dans la comande
ps eww www

Merci
0
poumiZ Messages postés 103 Statut Membre 10
 
le eww permet de connaître les variables et leur valeur de l'environnement lors du lancement de ton process
0
poumiZ Messages postés 103 Statut Membre 10
 
Je viens de compiler php avec un serveur en en_US, puis fait tourner avec fr_FR: c'est bien cette dernière valeur qui est prise.
D'après mes différents tests, php prend la même valeur LANG que le user faisant tourner apache.
Es-tu bien sûr que le paramètre LANG de ton user http est bien fr_FR ?
0
poumiZ Messages postés 103 Statut Membre 10
 
Pour connaître les paramètre locaux de ta machine:
# locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
0
pimos Messages postés 27 Statut Membre
 
env KO 120.92

/> locale
LANG=fr_FR
LC_COLLATE="fr_FR"
LC_CTYPE="fr_FR"
LC_MONETARY="fr_FR"
LC_NUMERIC="fr_FR"
LC_TIME="fr_FR"
LC_MESSAGES="fr_FR"
LC_ALL=

------------------------------------
env OK 151.191

$ locale
LANG=en_US
LC_COLLATE="en_US"
LC_CTYPE="en_US"
LC_MONETARY="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_MESSAGES="en_US"
LC_ALL=

-------------------------------------------------------

=> la vérité est ailleur...
0
poumiZ Messages postés 103 Statut Membre 10
 
Bonjour,
j'ai beau retourner le pb dans tous les sens, je pense que qqchose nous échappe.
Je te propose 2 tests:

1/ Connexion à ta base par sqlplus, et insérer une ligne (par la requête INSERT INTO) avec des données accentuées. Regarder le résultat. Si OK passer au test 2. Sinon, ça délire au niveau base (au fait, ta base est-elle située sur le même serveur?)

2/ Exécute ton script d'insertion en BDD via php en ligne de commande, avec un user différent de wwwuser.
Si résultat OK, le pb vient de Apache/php. Sinon, c'est bien php.
0
pimos Messages postés 27 Statut Membre
 
1/ ça marche correctement!
ma base est sur un serveur différent

2/ je n'ai pas testé


J'ai fait le tour de la question avec un collegue et nous pensons qu'il y a un mauvais paramétrage OCI (genre en anglais) car quand on affiche une date avec l'env KO le mois et la jour sont inversés.
0