SMF не работает на новой версии PHP 5.2.12!! Что делать ?

Автор Vveb.ws, 03 января 2010, 13:28:36

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Vveb.ws

Я на днях столкнулся с такой проблемой - хостер переехал на новый сервер и все мои тексты из базы данных стали знаками вопросов, причём тексты из файлов отображались нормально. То же самое со всеми версиями OSCommerce - тоже знаки вопроса вместо русских слов из БД. Так что проблема СЛОЖНАЯ!
У меня SMF 1.1.11, win-1251
Цитироватьхостинг seoplati.ru: стоит более поздняя версия PHP Version 5.2.12
так что теперь ? что с того, что поздняя версия, если она кривая ?
Я думал, что проблема в том, что запоролась БД, оказалось, нет, это новая версия PHP. БД оказалась цела.
Хостер посоветовал мне вписать
Цитироватьmysql_query("SET NAMES 'cp1251'");
там, где в скрипте идёт соединение с БД.
методом тыка я определил, что вписывать надо в главный index.php строки  68-78
Цитировать// Connect to the MySQL database.
if (empty($db_persist))
    $db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
else
    $db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);

mysql_query("SET NAMES 'cp1251'");

// Show an error if the connection couldn't be made.
if (!$db_connection || !@mysql_select_db($db_name, $db_connection))
    db_fatal_error();
И знаки вопросов исправились - появились русские буквы ! но на этом проблемы не закончились...

Но, видите ли, вот ещё в чём дело:
я поставил мод Закладок - http://ozdorovlenie.____vveb.ws/index.php?action=bookmarks , ещё пару дней назад он работал нормально, как и на Денвере, а сейчас пишет ошибки:
ЦитироватьОшибка базы данных 
Пожалуйста, повторите еще раз. Если ошибка продолжает повторятся, обратитесь к Администратору.
а иногда выдаёт другую ошибку
ЦитироватьtickedoffTable 'vvebw701_ozd.ozd_bookmarks' doesn't exist
Файл: /home/vvebw701/domains/____vveb.ws/public_html/ozdorovlenie/Sources/Bookmarks.php
Строка: 65
из-за чего бы это ?

Для того, чтобы это увидеть, надо войти на форум.
Типа посетитель
User
A5bnTer6k


Что делать ? переписывать ВСЕ старые скрипты, включая моды к SMF и OSC, вообще НЕреально.
Искать хостинг со старой версией PHP ?

Mavn

проблема с настройками бд но никак не с тем что новая версия php. ко всему прочему я на 5.2.12 тестировал smf никаких проблем замечено не было.
даже с php 5.3 и то нормально все работает.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Vveb.ws

странно...
но мне же пришлось прописать кодировку таблицы - значит это хостер мне подложил свинью, так ? если бы я не нашёл где вписать эту кодировку, у меня бы ничего не работало. Виноват хостер, точнее настройки сервера, выходит  ? может, не только в версии PHP, а в чём-то ещё... всё-таки новый сервер, новые проблемы

если проблема с настройками БД, это, значит, то где-то эти настройки должны быть прописаны ? Но я их нигде особо не прописывал, просто установил SMF на одном хостинге и переёнс на другой...

ЧТО ДЕЛАТЬ ?

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Vveb.ws

#4
эти файлы вроде бы насчёт кодировки, но это я как бы сделал уже
а что насчёт плагина Закладки ? Почему он внаглую не видит БД ? тоже надо прописать кодировку в БД
Цитировать) TYPE=MyISAM  DEFAULT CHARSET=cp1251 DEFAULT COLLATE=cp1251_general_ci;
может, там запрос к БД написан не тем синтаксисом, что надо


если хотите, перенесите мою тему в "Ошибки", что ли


Mavn

Цитата: digger от 03 января 2010, 16:34:47
Про кодировки вообще баян.
и где баян? на вопрос я ответил правильно другой вопрос что ответом не может воспользоваться!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Vveb.ws

Я ничё не понял, что Вы мне сказали !
А Вы ставили когда-нибудь этот мод ? Я поставил, сначала мод работал, потом - облом :(

я написал про вопросительные знаки и кодировку, потому, что я думал, что это как-то связано с версией php. А этот мод как-то зависит от версии PHP ?

Badman

Table 'vvebw701_ozd.ozd_bookmarks' doesn't exist

у вас хоть эта таблица в базе то есть ?

Vveb.ws

конечно, есть !
могу показать кусок БД
Цитировать--
-- Structure table `ozd_bookmarks`
--

CREATE TABLE IF NOT EXISTS `ozd_bookmarks` (
  `ID_MEMBER` mediumint(8) unsigned NOT NULL,
  `ID_TOPIC` mediumint(8) unsigned NOT NULL,
  UNIQUE KEY `ID_MEMBER` (`ID_MEMBER`,`ID_TOPIC`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

кстати, на Денвере работает та же БД, которая НЕ работает на хостинге.

Вероятно, там синтаксис языка запросов к БД не соместим с версией PHP. Файл Sources/Bookmarks.php отсюда http://custom.simplemachines.org/mods/index.php?mod=864  БЕЗ изменений для 1.1.11

Badman

мне не нужен кусок кода который должен создать эту таблицу, меня интересует есть ли таблица в базе, т.е. создалась ли она. У меня вобще часто складывается впечатление что люди на форуме и Вы говорите на разных языках, это инструкция для бызы данных MySQL и PHP тут по сути не при чем. Все что вам нужно это зайти через phpMyadmin и проверить есть ли выше указзаная таблица в вашей базе а не строить домыслы. ну а потом уже можно чтото думать .... а пока вы привели код который должен создать эту таблицу как доказательство того что эта таблица есть у вас в базе :) вобщем весело с Вами общаться вам люди про Фому а Вы им про Ерему.

Vveb.ws

конечно, есть! что ж я Вам совсем ламер ?
я её сам создавал из аналогичного кода по SQL-запросу.
Это кусок кода, что япривёл выше, из Экспорта БД

скриншот я вложил
обычным путём Таблица создпаваться не хотела, и почему-то по моему запросу выдало:
ЦитироватьMySQL вернула пустой результат (т.е. ноль строк). ( запрос занял 0.0002 сек. )
может, надо было создать БД путём создания таблицы и заполнения двух ячеек ?

данные для доступа к серверу отправил Вам в Личку

Badman

посмотрел таблица на месте, ошибок кстати в логе не заметил таких как вы описали, единственное что заметил в таблице _settings у вас версия 1.1.9, а форум 1.1.11 поэтому вопрос сейчас все нормально или лезут ошибки ?

Vveb.ws

#13
Я ж говорил, это причуды хостинга, вероятно. На Денвере всё это работает
Зайдите:
User
A5bnTer6k

Пи нажатии "Добавить в закладки"
ЦитироватьОшибка базы данных
Table 'vvebw701_ozd.ozd_bookmarks' doesn't exist
Файл: /home/vvebw701/domains/____vveb.ws/public_html/ozdorovlenie/Sources/Bookmarks.php
Строка: 143

Примечание: Возможно Вашей базе данных требуется обновление. Версия файлов Вашего форума SMF 1.1.11, тогда как версия Вашей базы данных 1.1.9. Для устранения ошибки обновите, пожалуйста, форум.
это - /Sources/Bookmarks.php для 1.1.11 - строки 136-143
Цитировать// Is this already added as a bookmark?
    $result = db_query("
        SELECT *
        FROM {$db_prefix}bookmarks
        WHERE
            ID_MEMBER = $id_member AND
            ID_TOPIC = $id_topic
        LIMIT 1", __FILE__, __LINE__);

При переходе на страницу "Закладки"
ЦитироватьОшибка базы данных
Table 'vvebw701_ozd.ozd_bookmarks' doesn't exist
Файл: /home/vvebw701/domains/____vveb.ws/public_html/ozdorovlenie/Sources/Bookmarks.php
Строка: 65

Примечание: Возможно Вашей базе данных требуется обновление. Версия файлов Вашего форума SMF 1.1.11, тогда как версия Вашей базы данных 1.1.9. Для устранения ошибки обновите, пожалуйста, форум.
это - /Sources/Bookmarks.php для 1.1.11 - строки 40-65
Цитировать// Load this user's bookmarks
    $request = db_query("
        SELECT
            t.ID_TOPIC, t.numReplies, t.locked, t.numViews, t.ID_BOARD, b.name AS board_name,
            IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from,
            t.ID_LAST_MSG, ml.posterTime AS last_poster_time,
            ml.ID_MSG_MODIFIED, ml.subject AS last_subject, ml.icon AS last_icon,
            ml.posterName AS last_member_name, ml.ID_MEMBER AS last_id_member,
            IFNULL(meml.realName, ml.posterName) AS last_display_name, t.ID_FIRST_MSG,
            mf.posterTime AS first_poster_time, mf.subject AS first_subject, mf.icon AS first_icon,
            mf.posterName AS first_member_name, mf.ID_MEMBER AS first_id_member,
            IFNULL(memf.realName, mf.posterName) AS first_display_name
        FROM {$db_prefix}bookmarks AS bm
            INNER JOIN {$db_prefix}topics AS t ON (bm.ID_TOPIC = t.ID_TOPIC)
            INNER JOIN {$db_prefix}boards AS b ON (t.ID_BOARD = b.ID_BOARD)
            INNER JOIN {$db_prefix}messages AS ml ON (ml.ID_MSG = t.ID_LAST_MSG)
            INNER JOIN {$db_prefix}messages AS mf ON (mf.ID_MSG = t.ID_FIRST_MSG)
            LEFT JOIN {$db_prefix}members AS meml ON (meml.ID_MEMBER = ml.ID_MEMBER)
            LEFT JOIN {$db_prefix}members AS memf ON (memf.ID_MEMBER = mf.ID_MEMBER)
            LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC = t.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
            LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = t.ID_BOARD AND lmr.ID_MEMBER = $ID_MEMBER)
        WHERE
            bm.ID_MEMBER = {$ID_MEMBER}
            AND {$user_info['query_see_board']}
        ORDER BY t.id_last_msg DESC",
        __FILE__, __LINE__);

Обидно ! Всё сделал правильно, а оно не работает...
Я не знаю, что именно серверу не нравится в таком запросе к БД - последняя строка, которая не нравится серверу, выделена красным

Badman

ЦитироватьЗайдите:
User
A5bnTer6k

Такого пользователя не существует.

мод ставили до апдейта форума или после ?

Drakonsa

Цитата: __vveb.ws от 05 января 2010, 12:45:00
Я ж говорил, это причуды хостинга, вероятно. На Денвере всё это работает
Зайдите:
User
A5bnTer6k

Пи нажатии "Добавить в закладки"
При переходе на страницу "Закладки"
Обидно ! Всё сделал правильно, а оно не работает...
Если он пишет, что нету такой таблицы, значит ее нету.

Vveb.ws

#16
М-да, пользователь User ИСЧЕЗ, сранно всё это...
Вероятно "доброжелатели", гады, его удалили, но я его снова создал. В принципе, Badman, Вы могли зайти под любым логином и паролем - я ж Вам дал доступ к БД.

Мод ставил после апгредйа форума
я делал кучу изменений, мод закладки ставил почти в самом конце, совсем недавно (указаны номера изменений)
+1_МОД_CUSTOM_BB-CODES_SMF-1.1.10 - работает
...
+8_SMF_1.1.11_АПГРЕЙД - работает
...
+13_sitemap - работает
+14_Bookmarks - НЕ работает

Цитата: Drakonsa от 05 января 2010, 17:44:16Если он пишет, что нету такой таблицы, значит ее нету.
а у меня на сарае слово "Х..." написано, а там дрова лежат!
Вот Badman уже убедился, что таблица ЕСТЬ, запрос к ней, может, не такой, как надо, серверу идёт...

Badman

к счастью не имею привычки ковырять и править что то в чужих базах тем более в пользователях.

я бы на вашем месте попробовал грохнуть все таблицы этого мода и запустить mysql запрос из установочного скрипта мода по новой или полностью переустановить сам мод.

Vveb.ws

Цитата: Badman от 05 января 2010, 18:38:12
я бы на вашем месте попробовал грохнуть все таблицы этого мода и запустить mysql запрос из установочного скрипта мода по новой или полностью переустановить сам мод.
К чему такие громкие слова "грохнуть все таблицы этого мода"?
там всего одна таблица на два значения, причём запрос на создание таблицы уже есть в бэкапе БД.
методом тыка повторять проденные действия можно, авось и впрямь где-то ошибся, но трудно ошибиться в таблице из двух ячеек
Я думал, может, что-то дельное насчёт кода запроса к БД Вы мне посоветуте (посмотрите первую страницу - сейчас я добавил код запроса к БД)

Vveb.ws

Насчёт "Мода Закладки"

Я понял в чём дело! Я перешёл на новый хостинг, взял БД состарого хостинга, и оказалось, такой таблицы действительно НЕТУ! Но на новом хостинге я создал новую таблицу в БД и всё работает.

Хостер переезжал, и на тот момент были доступны две PHPMyAdmin
Может, я сделал новую таблицу на старом сервере, а хостер уже перенёс всё добро на новый сервер, но старый сервер был ещё доступен некоторое время.
Или, если всё работало а потом перестало, значит хостер взял НЕ самый последний бэкап БД для переезда.
В общем проблема не в моде, а в переезде хостера.