| 
				
					| cooper | Отправлено: 15 февраля 2015 — 08:51   |  
					| 
  
 
  Junior Member
 
  
 Покинул форум
 Сообщений всего: 66
 Дата рег-ции: Авг. 2011
 Репутация: 1
 
 
 
 
  
 | electron пишет:перенос форума должен выполняться в бинарном режиме. если это условие не выполнялось на форуме будут постоянные косяки. С этим просто - FTP Voyager  tools\transfer mode\binary
 
 
 electron пишет:после переезда нужно высставить права на запись для файлов и папок из ExBB FAQ , вопрос/ответ 3 Там к примеру сказано:"для папки data и всех файлов в ней"
 В папке data есть вложенная папка access_log, нужно ли изменять в ней?
 
 
 Тут таки да, если долго пользуешься форумом как потребитель, то после этого любые сбои в работе вызывают трудности.
 С другой стороны, это говорит в пользу форума, - пару лет работал как часы.
 (Отредактировано автором: 15 февраля 2015 — 08:52) |  
					|  |  |  
				
					| cooper | Отправлено: 15 февраля 2015 — 20:56   |  
					| 
  
 
  Junior Member
 
  
 Покинул форум
 Сообщений всего: 66
 Дата рег-ции: Авг. 2011
 Репутация: 1
 
 
 
 
  
 | electron пишет:
сам сервер должен работать в кодировке win-1251 . если в админке хостинга нельзя выбрать кодировку сервера - заставьте его принудительно обрабатывать работу форума в нужной ВАМ кодировке. для этого в корневой .htaccess форума надо добавить строку
 CODE:AddDefaultCharset windows-1251 Сервер хостера работает в UTF-8, поэтому практически сразу:
 В настройках домена прописал windows-1251
 Строчку с кодировкой в .htaccess форума прописал.
 При сбое кодировки хотя бы кракозябалы должны были бы писаться, а тут - ничего.
 Пишет везде - "не заполнили поле"
 Или в админке, просто не сохраняет записи на кириллице.
 (Отредактировано автором: 15 февраля 2015 — 20:59) |  
					|  |  |  
				
					| cooper | Отправлено: 16 февраля 2015 — 13:00   |  
					| 
  
 
  Junior Member
 
  
 Покинул форум
 Сообщений всего: 66
 Дата рег-ции: Авг. 2011
 Репутация: 1
 
 
 
 
  
 | Цитата:Затем нужно решить проблему с функцией htmlspecialchars в которой нужно обязательно прописать кодировку cp1251 или будут проблемы с кириллицей. 
Можно конечно жестко прописать, но вдруг когда поменять придется... 
Короче открываем common.php ищем строку
 CODE:define('FM_PATH', dirname(dirname(__FILE__)) . '/'); 
после которой добавляем
 CODE:define("FM_ENCODING", "cp1251"); 
И в папке install в файлах index.php и update.php аналогично в начало добавляем
 CODE:define("FM_ENCODING", "cp1251"); 
После этого делаем поиск по всем файлам форума строки htmlspecialchars и если у функции задано не все три параметра приводим функцию к полному виду, например
 CODE:htmlspecialchars($v,ENT_QUOTES,FM_ENCODING) 
(на месте первого параметра должно остаться то, что там было) 
И не включаем модули "Хранение статистики чтения тем на сервере" и "Поиск тем и сообщений пользователя" т.к. они используют базу на SQLite2 а её поддержка с этой версии PHP была прекращена. 
 У меня файл common имеет вид:
 
 CODE:<?phpif (!defined('IN_EXBB')) die('Hack attempt!');
 error_reporting  (E_ALL);
 #error_reporting  (E_ERROR | E_PARSE);
 
 if (!defined("PATH_SEPARATOR")) { define("PATH_SEPARATOR", getenv("COMSPEC")? ";" : ":"); }
 ini_set("include_path", ini_get("include_path").PATH_SEPARATOR.dirname(__FILE__));
 
 
 if (get_magic_quotes_runtime() === 1) set_magic_quotes_runtime(0);
 
 define("FM_LOGDIR",			"data/access_log/");
 define("FM_ALLFORUMS",		"data/allforums.php");
 define("FM_ALLFORUMS_BAK",	"data/allforums_bak.php");
 define("FM_BADWORDS",		"data/badwords.php");
 define("FM_BANLIST",		"data/banlist.php");
 define("FM_BANNEDIP",		"data/bannedip.php");
 define("FM_BANNERS",		"data/banners.php");
 define("FM_BOARDINFO",		"data/boardinfo.php");
 define("FM_BOARDINFO_BAK",	"data/boardinfo_bak.php");
 define("FM_BOARDSTATS",		"data/boardstats.php");
 define("FM_COUNTERS",		"data/counters.php");
 define("FM_TITLES",			"data/membertitles.php");
 define("FM_NEWS",			"data/news.php");
 define("FM_ONLINE",			"data/onlinedata.php");
 define("FM_SKIP_MAILS",		"data/skip_mails.php");
 define("FM_SMILES",			"data/smiles.php");
 define("FM_USERS",			"data/users.php");
 define("FM_TEMPUSERS",		"data/users_temp.php");
 define("FM_SEARCH_EXC",		"data/search_exc.php");
 define("FM_VERSION",		"1.0 RC1");
 
 require_once('lib.php');
 require_once('page_header.php');
 
 $fm->_Advertising();
 $fm->_Authorization();
 
 // Если сервер в заголовках принудительно ставит левую кодировку, пошлём его подальше и поставим свою ;)
 header('Content-Type: text/html; charset='.$fm->LANG['ENCODING']);
 
 $fm->exbb['version'] = FM_VERSION;
 
 // На домене установки форум будет доступен только по тому URL, который указан в админке
 // Это предотвращает проблемы с работой сессий и куки на производных поддоменах типа 'www' и т п.
 preg_match("#(www\.|)([[:alnum:]\.\-]+)/([[:alnum:]\/\.\-]+)#is", $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'], $req_url);
 preg_match("#(www\.|)([[:alnum:]\.\-]+)/([[:alnum:]\/\-]+)#is", $fm->exbb['boardurl'], $set_url);
 if (@$req_url[2] == @$set_url[2] && $req_url[1] != $set_url[1])
 header('Location: http://'.$set_url[2].'/'.$req_url[3].(($_SERVER['QUERY_STRING'] ? '?'.$_SERVER['QUERY_STRING'] : '')));
 unset($req_url, $set_url);
 
 if ($fm->exbb['installed'] === FALSE) {
 header("Location: ./install/index.php");
 } elseif (file_exists("./install/index.php")) {
 $fm->_Message($fm->LANG['MainMsg'],$fm->LANG['DelleteInstallDir']);
 }
 
 if ($fm->exbb['board_closed'] && !(defined('IS_LOGIN') || defined('IS_ADMIN'))) {
 $fm->_Message($fm->LANG['BoardClosed'],nl2br(strtr($fm->exbb['closed_mes'], array_flip(get_html_translation_table(HTML_SPECIALCHARS)))));
 }
 ?>
 
 (Отредактировано автором: 16 февраля 2015 — 13:04) |  
					|  |  |  
				
					| cooper | Отправлено: 16 февраля 2015 — 21:32   |  
					| 
  
 
  Junior Member
 
  
 Покинул форум
 Сообщений всего: 66
 Дата рег-ции: Авг. 2011
 Репутация: 1
 
 
 
 
  
 | NordWest, - в common прописал, не помогло. Из всех подчеркнутых файлов, у меня есть только:
 fm.class.рнр
 JsHttpRequest.рнр
 Но в них нет функции: htmlspecialchars
 Ну или устал уже.
   -
 "Танцы с бубнами".....................
 Запустил Денвер-3 РНР5
 Залил туда весь форум из бэкапа - все работает как часы.
 Проблема в кодировке!
 Пока лазил по JsHttpRequest.рнр - обнаружил там интересные строки:
 
 CODE:     * Convert a PHP scalar, array or hash to JS scalar/array/hash. This function is
 * an analog of json_encode(), but it can work with a non-UTF8 input and does not
 * analyze the passed data. Output format must be fully JSON compatible.
 
 CODE:if (function_exists('array_walk_recursive') && function_exists('json_encode') && $this->_unicodeConvMethod) {$encoding = "UTF-8";
 $this->_nonAsciiChars = join("", array_map('chr', range(128, 255)));
 $this->_toUtfFailed = false;
 array_walk_recursive($result, array(&$this, '_toUtf8_callback'), $this->SCRIPT_ENCODING);
 if (!$this->_toUtfFailed)
 Вообще-то я рнр знал только немножко, да и то вчера. Но судя по всему там запрет на работу с utf-8.
 |  
					|  |  |  
				
					| cooper | Отправлено: 17 февраля 2015 — 08:02   |  
					| 
  
 
  Junior Member
 
  
 Покинул форум
 Сообщений всего: 66
 Дата рег-ции: Авг. 2011
 Репутация: 1
 
 
 
 
  
 | Ситуация такая, - тут постоянно говорилось, что форум работает только на серверах с windows-1251. Ппрописать в .htaccess эту строку:
 
 CODE:AddDefaultCharset windows-1251 - ничего не решает.
 Эта строка регламентирует сервер передавать браузеру инфу в этой кодировке, и то, если не будет другой команды. На то, что передает браузер на сервер, это не распространяется.
 Есть еще две директивы:
 
 CODE:CharsetSourceEnc windows-1251 - Загрузка файлов только в windows-1251
 
 - Запрет перекодировать файлы.
 Обе эти директивы вызывают у меня на хостинге - ошибку 500.
 .htaccess ограничено в своей работе директивами заданными в  httpd.conf
 (Отредактировано автором: 17 февраля 2015 — 08:06) |  
					|  |  |  |