Sivu 3/3

Lähetetty: 27 Touko 2006, 14:16
Kirjoittaja HazuKazu
Minulla on sama ongelma. Koikeilkaapa käyttää tuolla ääkkösiä: http://simppeli.org/~hazukazu/foorumi/

Lähetetty: 27 Touko 2006, 16:44
Kirjoittaja TheMagician
Mulla toimi ääkköset ku pistin tän phpBB2 tietokannalle

Koodi: Valitse kaikki

ALTER DATABASE tietokannan_nimi CHARACTER SET latin1 COLLATE latin1_general_ci;
Eli tuo vaihtaa merkistön Latin1:ksi, mutta kannattaa ottaa eka se backup, jos joku vaikka menee pärsiilteen, mulla toimi ja hyvä niin :)

Lähetetty: 28 Touko 2006, 17:50
Kirjoittaja tuuletin
Kummatkaan neuvot eivät toimineet.Mitäs nyt? :(

Lähetetty: 30 Touko 2006, 14:36
Kirjoittaja fizzl
tuuletin kirjoitti:Kummatkaan neuvot eivät toimineet.Mitäs nyt? :(
Pistän tässä toista forumia pystyyn, ja päätin kokeilla uudenlaista lähestymistapaa ongelmaan.
Tämä tapa saattaa räjäyttää mitä tahansa. Hieman, eh, omituinen häkki.

Eli, ensinnäkin tietokanta luodaan utf-8 muodossa, collation utf8_general_ci.
Tämän jälkeen muokataan:
admin/page_header_admin.php
Kommantoi gzip pakkauksen käsittely.

muokkaa:
admin/pagestart.php
poista gzip pakkaus

muokkaa: includes/page_header.php:45
Poista gzip sydeemit.

muokkaa: extension.inc
lisää ob_start();

Etsi kaikki ob_end_clean paikat ja kommentoi kaikki pois.

Laita page_tail.php ja admin/page_footer_admin tiedostoihin kaiken tulostuksen jälkeen:

Koodi: Valitse kaikki

$ob = utf8_decode(ob_get_contents());
ob_end_clean();
echo $ob;
Sitten muokataan common.php. Lisää aivan loppuun:

Koodi: Valitse kaikki

// Translate http vars
function toutf8($arg)
{
  foreach($arg as &$var)
  {
    if(is_array($var))
      $var = toutf8($var);
    else if(is_string($var))
      $var = utf8_encode($var);
  }
  return $arg;
}
$HTTP_POST_VARS = toutf8($HTTP_POST_VARS);
$HTTP_GET_VARS = toutf8($HTTP_GET_VARS);
$HTTP_COOKIE_VARS =  toutf8($HTTP_COOKIE_VARS);
Tämä muuttaa kaikki stringit UTF-8:ksi, ja lopussa sitten runnotaan ne iso-8859-1 muotoon tuolla decodella.

Sitten vielä lopuksi menet tähän hakemistoon:
/language/lang_finnish/
ja ajat tämän bash scriptin:

Koodi: Valitse kaikki

for file in *.php
do
  iconv -t UTF-8 $file -o $file.utf-8
  mv $file.utf-8 $file
done

cd email

for file in *.tpl
do
  iconv -t UTF-8 $file -o $file.utf-8
  mv $file.utf-8 $file
done

echo; echo

exit 0
Jos jotain menee vikaan niin koita sumplia. Tämä oli vain pikainen muistelo tästä 4 tunnin häkkäyssessiosta. Perusidea on se, että kaikki string muotoinen data näytetään ja siirretään iso-8859-1 muodossa mutta käsitellään php:ssa utf-8 muodossa.

Lähetetty: 02 Kesä 2006, 14:29
Kirjoittaja tuuletin
Pukkaa syntax erroria kokoajan.

Lähetetty: 02 Kesä 2006, 19:33
Kirjoittaja mrl586
tuuletin kirjoitti:Pukkaa syntax erroria kokoajan.
Kerrotko tuosta errorista hieman tarkemmin?

Lähetetty: 02 Kesä 2006, 22:00
Kirjoittaja tuuletin
mrl586 kirjoitti:
tuuletin kirjoitti:Pukkaa syntax erroria kokoajan.
Kerrotko tuosta errorista hieman tarkemmin?
Mitä siitä sen enempää kertomaan, kuine että valittaa melkein jokaista mokattua tiedostoa.

Lähetetty: 02 Kesä 2006, 22:50
Kirjoittaja Admin
Mites jos vaikka copy-pasteat koko virheilmoituksen tänne...silloin nuo jotka ymmärtävät saattavat saada osviittaa mikä mahtaa olla vikana ;)

Lähetetty: 03 Kesä 2006, 23:45
Kirjoittaja tuuletin
Jokaisen editoidun tiedoston kohdalla jotenkin näin:

Syntax error:
Line (muokattu rivi)

Lähetetty: 06 Kesä 2006, 10:10
Kirjoittaja tuuletin
Tein jotakin, niin sain aikaan tälläisen virheilmoituksen:

Could not insert new word matches

DEBUG MODE

INSERT INTO phpbb_search_wordmatch (post_id, word_id, title_match) SELECT 222, word_id, 0 FROM phpbb_search_wordlist WHERE word_text IN ('ääkköstesti')

Line : 251
File : functions_search.php

Lähetetty: 06 Kesä 2006, 23:08
Kirjoittaja fizzl
Tämän virheen mäkin sain jollain mielenkiintoisella db/collation charset asetuksilla. Olikohan tietokanta ja collation latin1 ja osa taulujen varchar kentistä utf-8. Tai toisinpäin.
Tuo siis mulla tapahtui tunaamattomalla phpBB:llä.

Pistä tuuletin oikeesti ne syntax error systeemit kokonaan. Ne saattaa kertoa paljonkin php:ta tuntevalle vaikka saattavatkin vaikuttaa turhanpäiväiseltä mössöltä. Luulen että sattui joku copy&paste virhe.

Toisaalta, noilla mun ohjeilla ei kyllä ohjelmointia tuntematon varmaankaan onnistu modaamaan. Pahus kun olisin ottanut diffit heti häkkäyksen jälkeen. Nyt olen jo munklinut vaikka mitä muutakin.

Lähetetty: 07 Kesä 2006, 19:55
Kirjoittaja tuuletin
Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$' in /var/www/localhost/htdocs/phpBB2/common.php on line 238

Lähetetty: 10 Kesä 2006, 22:08
Kirjoittaja tuuletin
Phpbb on nyt toisella palvelimella ja ääkkösongelma on ratkaistu.