Tere!
Teeme omalt osalt kõik selleks, et jõuda antud probleemi põhjustanud asjaoludeni. Probleemi iseloom iseenesest on meile ilmselt juba
enam-vähem selge, kuid arusaamatu on see, kuidas see probleem alles nüüd ilmnes.
Viga iseenesest ei ole MySQL serveris ega andmebaasis ja ka virtuaalserveriteenus toimib teile täpselt nii nagu ettenähtud on.
Viga tekitab phpBB foorumi skript ise ning alljärgnevalt selgitan, kuidas see juhtub:
Kui postitus tehakse, siis kliendi brauserist jõuab sisu phpBB skriptini UTF-8 kodeeringus.
Skript paneb postituse ilusti samas kodeeringus baasi ning seejärel hakkab täiendama
postituses olevate sõnade baasil oma otsinguandmebaasi (tabelid phpbb_search_wordmatch ja
phpbb_search_wordlist).
See otsingusüsteemi kood teisendab kõik märgid postituse sõnades väikesteks tähtedeks
(FAIL htdocs/includes/functions_search.php RIDA 27) arvestamata postituse kodeeringut. Kuna ta
kasutab selleks PHP funktsiooni strtolower(), mis EI OLE kodeeringuga arvestav siis riknevad kõik UTF-8 kodeeringus
olevad märgid (nt. täpitähed).
Seejärel üritab skript need riknenud kodeeringuga sõnad saata MySQL serverile läbi ühenduse, millele on eelnevalt
öeldud, et ühendus MySQL serveri ja PHP skripti vahel toimub UTF-8 kodeeringus. Kuna skript üritab saata andmeid,
mis on vigaselt kodeeritud ning MySQL server saab sellest aru, siis ütlebki ta veateate.
Kuna väidate, et seda veateadet enne ei esinenud ning täpitähtedega postitustest genereeriti otsingubaasi ilusti, siis
ütlen otse ära, et meie jaoks on hetkel arusaamatu, miks need foorumid enne ILMA selle veateateta töötasid.
Veebiserveri ega MySQL serveri tarkvara versioone ega konfiguratsiooni pole muudetud.
Mis MySQL versioon seal teises "lokaalses serveris" on?
Kui on alla 4.1, siis seda viga ei teki, kuna MySQL ei kontrolli andmete kodeeringut.
Lahendus on parandada eelpool mainitud failis rida 27 ning panna:
<?php
...
$entry = ' ' . strip_tags(strtolower ($entry)) . ' ';
...
?>
asemele
<?php
...
$entry = ' ' . strip_tags(mb_strtolower ($entry, $GLOBALS['lang']['ENCODING'])) . ' ';
...
?>
Mis puudutab meie virtuaalserveriteenuse klienditeeninduse reageerimist, siis selle aktiivse töö ajad on väljas ka meie koduleheküljel. Jälgime HelpDeski laekuvaid
kirju ka muudel aegadel, kuid see ei toimu korrapäraselt - ka teie saadetud kiri sai esmase vastuse laupäeval. Monitoorime me oma teenuseid loomulikult
24/7 ja monitooringusüsteemi poolt väljastatud veateadetele reageerime samuti 24/7, kuid sellised vead, millest praegu juttu on, meie monitooringusüsteemis
arusaadavalt ei kajastu. Kindlasti on selles juhtumis piisavalt sellist, mida saame endale kõrva taha panna ja tulevikus klienditeeninduse arendamisel arvesse
võtta.
P.S. Ega teil ei ole midagi selle vastu, kui postitame käesoleva selgituse ka teie foorumisse antud küsimust käsitsevasse teemasse? Või postitate selle sinna ise?
Lugupidamisega,
Margus Kaidja
Zone Media klienditugi
Tel: +372 688 6886
Faks: +372 688 6887
E-post:
abi@zone.ee
www:
http://www.zone.ee
Zone Media OÜ