mod_czech a php3

Ondrej X Dolezal trifid na redigy.cz
Pátek Květen 21 15:55:45 CEST 1999


Dobry den,
tento mail byl puvodne smerovany do konference mod_czech,
proto musim vysvetlit ze mod_czechem je minen modul pro
automaticke kodovani cestiny pro httpd Apache - 
viz www.intersoft.cz/mod_czech.

Mam linuxovy system (RH5.2) s Apachem 1.3.4, modulem PHP3.0.7 a
mod_czech 3.1.0b4 (pro A1.3.4). V teto konfiguraci bezi nekolik
webu z databaze, k niz se pristupuje prave pres PHP3. 
Data v databazi, skripty i staticke stranky jsou v kodovani CP1250,
mod_czech je nastaveny aby prekodovaval i vstup formularu do
tohoto kodovani. Pri pouhem prohlizeni stranek vse funguje,
ale nedavno jsme zjistili nasledujici problem:
- pri odesilani formularu ze systemu ktery ma jine kodovani nez CP1250
  je sance 7 ku 3 ze se odeslana data (metoda POST) do PHP3 skriptu
  vubec nedostanou (stranka nedostane zadny vstup).
- dalsi zkoumani objevilo, ze problem nastane pouze kdyz odesilany
  formular obsahuje diakritiku, a i tehdy jen pokud je dlouhy
  (vic nez 1 radka - napr. clanek o 4 kb, ale i aktualita o 200 bytech)
- pokud stranka data obdrzi, jsou spravne prekodovana
Prekodoval jsem databazi i stranky do ISO-8859-2, v mod_czechu
nastavil SourceCharset,FormDataCharset na iso-8859-2 a problem
se obratil - nyni je se vetsinou nepodari odeslat data, obsahujici
diakritiku z platformy nepouzivajici ISO-8859-2. Pokud jsem mod_czech
zcela vypnul, problemy zmizely, ale data pochopitelne nebyla 
v jednotnem kodovani -> nepouzitelne. 

Dalsi krok bylo zkompilovat aktualni Apache 1.3.6 s cerstve stazenym
mod_czechem3.1.0b4 pro 1.3.6 a PHP3.0.7 (opet jako modul). Bohuzel,
ani toto nepomohlo a novy httpd se chova zcela identicky.
Analyza logu ukazuje, ze request od kliena normalne prijde 
(v access_logu uvedeno POST /neco.phtml 200), v error_logu zadne 
SIGSEGV ani nic podobneho.

Nektere dalsi postrehy: 
kompilaci jsem provedl zhruba takto:
1) opatchovani src apache patchem pro mod_czech
2) (v apache/) configure
3) (v php3/) configure --with-apache=../apache
4) (v php3/) make; make install
5) (v apache/src/modules/czech/charconv) make
6) (v apache/) configure --activate-module=src/modules/php3/libphp3.a
 --activate-module=src/modules/czech/libczech.a
7) (v apache/) make; make install
Hotovy httpd vypise v seznamu modulu na mod_czech az na
poslednim miste, za mod_php3 - podle dokumentace spravne.

Nesetkal se nekdo s podobnou situaci, resp. nevite co s tim?
Dekuji,
Ondrej Dolezal

- Ondrej.Dolezal na Redigy.Cz --------------------------------------------
  (+420) 603 499 675                       REDIGY Nesverova 1 Olomouc  
------------------------------------------------ http://www.Redigy.Cz -


Další informace o konferenci Linux