Przenoszenie phpBB i problem z kodowaniem

Pomoc przy instalacji oraz użytkowaniu phpBB 3.0.x. Forum nie służy do zgłaszania znalezionych błędów, innowacji lub problemów związanych ze stylami i modyfikacjami.
okokok
Posty: 2
Rejestracja: 05 czerwca 2012, 14:10

Przenoszenie phpBB i problem z kodowaniem

Post autor: okokok » 05 czerwca 2012, 14:38

Witam,
Chciałbym przenieść forum z mojeforum.net. Jest tam jakaś przeróbka phpBB 2.17. Na nowy serwerze zainstalowałem phpBB 2.23. Nie mogłem zainstalować wersji 2.17, bo wymagała ona bazy MySQL 4, a na serwerze jest tylko MySQL 5. Zrobiłem kopie bazy danych przez panel administracyjny. Kopia ta zakodowana jest w UTF8, tak samo ustawione jest kodowania na początku pliku:

Kod: Zaznacz cały

-- MySQL dump 10.11
--
-- Host: localhost    Database: moje_phpbb1234
-- ------------------------------------------------------
-- Server version	5.0.32-Debian_7etch12

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
Tabele w bazie tworzone są w latin1:

Kod: Zaznacz cały

--
-- Table structure for table `prefiks_forums`
--

DROP TABLE IF EXISTS `prefiks_forums`;
CREATE TABLE `ekotopik_forums` (
  `forum_id` smallint(5) unsigned NOT NULL default '0',
  `cat_id` mediumint(8) unsigned NOT NULL default '0',
  `forum_name` varchar(150) default NULL,
  `forum_desc` text,
  `forum_status` tinyint(4) NOT NULL default '0',
  `forum_order` mediumint(8) unsigned NOT NULL default '1',
  `forum_posts` mediumint(8) unsigned NOT NULL default '0',
  `forum_topics` mediumint(8) unsigned NOT NULL default '0',
  `forum_last_post_id` mediumint(8) unsigned NOT NULL default '0',
  `prune_next` int(11) default NULL,
  `prune_enable` tinyint(1) NOT NULL default '0',
  `auth_view` tinyint(2) NOT NULL default '0',
  `auth_read` tinyint(2) NOT NULL default '0',
  `auth_post` tinyint(2) NOT NULL default '0',
  `auth_reply` tinyint(2) NOT NULL default '0',
  `auth_edit` tinyint(2) NOT NULL default '0',
  `auth_delete` tinyint(2) NOT NULL default '0',
  `auth_sticky` tinyint(2) NOT NULL default '0',
  `auth_announce` tinyint(2) NOT NULL default '0',
  `auth_vote` tinyint(2) NOT NULL default '0',
  `auth_pollcreate` tinyint(2) NOT NULL default '0',
  `auth_attachments` tinyint(2) NOT NULL default '0',
  `show_quickreply` tinyint(1) NOT NULL default '0',
  `auth_ban` tinyint(2) NOT NULL default '3',
  `auth_greencard` tinyint(2) NOT NULL default '5',
  `auth_bluecard` tinyint(2) NOT NULL default '1',
  `forum_parent` int(11) NOT NULL default '0',
  `enable_pluspoints` tinyint(1) NOT NULL default '1',
  `enable_minuspoints` tinyint(1) NOT NULL default '1',
  `forum_icon` varchar(255) default NULL,
  PRIMARY KEY  (`forum_id`),
  KEY `forums_order` (`forum_order`),
  KEY `cat_id` (`cat_id`),
  KEY `forum_last_post_id` (`forum_last_post_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Wszystkie polskie znaki w tym pliku to jakieś krzaczki - np. "ê" zamiast "ę" i "³", zamiast "ł".

Po wgraniu tego do bazy, zarówno w PMA, jak i na forum wyświetlają się krzaczki.

W nowej bazie ustawione jest kodowanie utf8_polish_ci.

Próbowałem już konwertować to Grzegrzółką, z UTF8 na latin1 i importować w PMA, jako latin1, w notepadzie++ wszystko (no może prawie), wyświetla się ok, ale dalej w bazie i na forum są krzaczki.

Po ręcznej zamianie tych krzaków na prawidłowe litery i zamianie latin1 na utf8, w bazie wszystko jest OK, ale na forum dalej są krzaki.

Na mojeforum.net w nagłókach html, ustawione jest kodowanie latin2, a na nowej instalce latin1. Mimo to zmiana kodowania w przeglądarce nic nie daje.

Gdy do pliku config.php wstawiłem "mysql_query("SET NAMES utf8")", forum zaczęło się prawidłowo wyświetlać, ale wyświetlały się też błędy, że nagłówki HTTP zostały już wysłane. Próbowałem dodać to do common.php (już wykorzystując obiekt phpBB, a nie funkcje mysql_query), ale wtedy to nic nie dało. To samo gdy ustawiałem to w pliku /db/mysql4.php, zaraz po mysql_connect.

PS Być może ma to jakieś znaczenie - zainstalowałem angielską wersje phpBB, bo nie znalazłem nigdzie spolszczenia/polskiej wersji. Wszędzie tylko "już nie wspieramy phpBB 2.0". IMHO to trochę głupie, bo żeby zrobić aktualizacje muszę mieć działające phpBB 2, a na mojeforum.net nie mogę zrobić aktualizacji.

Gość

Re: Przenoszenie phpBB i problem z kodowaniem

Post autor: Gość » 06 czerwca 2012, 13:27

Już sobie z tym poradziłem, gdyby ktoś miał podobny problem to:
1. Trzeba przekonwertować plik za pomocą Gżegżółki z UTF8 do Latin1
2. Otworzyć w Notepad++ jako Latin2!!! i zapisać jako UTF8 (przekonwertować)
3. Wywalić wpisy dotyczące kodowania z pliku (CHARSET=latin1 przy każdej tabeli)
4. Wgrać do bazy
5. W pliku /db/mysql4.php zaraz po połączeniu z bazą ustawić kodowanie połączenia na UTF8:

Kod: Zaznacz cały

mysql_query("SET NAMES utf8", $this->db_connect_id);

sisi
Posty: 2
Rejestracja: 20 marca 2015, 23:22

Re: Przenoszenie phpBB i problem z kodowaniem

Post autor: sisi » 22 marca 2015, 11:10

Gość pisze: ...
5. W pliku /db/mysql4.php zaraz po połączeniu z bazą ustawić kodowanie połączenia na UTF8:

Kod: Zaznacz cały

mysql_query("SET NAMES utf8", $this->db_connect_id);
gdzie mogę znaleźć ten plik i jakie jest jego zadanie? ("czym to się je"? przepraszam za totalną ignorancję).
przeglądając strukturę db na serwerze nic takiego nie widziałam.

czytam i nie rozumiem, a chcialabym...

Zablokowany

Wróć do „Użytkowanie”