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 */;
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;
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.