Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Ошибка при переходе в закладки в личном разделе

Проблемы с установкой или работой phpBB 3.1.x? Получите помощь здесь!
С 1 июля 2018 года phpBB Group прекращает поддержку phpBB версии 3.1.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.1 до 1 января 2019 года.
Подробнее: Окончание поддержки phpBB 3.1.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
romeo_piter
phpBB 2.0.21
Сообщения: 1322
Стаж: 15 лет 1 месяц
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Ошибка при переходе в закладки в личном разделе

Сообщение romeo_piter »

Генератор запросов в службу поддержки

Какую версию phpBB вы используете?: phpBB 3.1.5
Какой тип/версию базы данных вы используете?: MySQL 5.5.43-0+deb7u1
Какую версию PHP вы используете?: 5.4.41-0+deb7u1
Кто предоставляет услуги хостинга?: Ответ не предоставлен
Как вы установили вашу конференцию?: Я использовал установочный пакет с phpbbguru.net
Вы используете чистую установку или конвертацию?: Обновление с более ранней версии phpBB3
Какие расширения у вас установлены?: alg/AddonForThanksForPosts (active)
arty/scss (active)
bb3mobi/dopinfo (active)
bb3mobi/exlinks (active)
bb3mobi/highslide (active)
bb3mobi/imgposts (active)
bb3mobi/inlineimg (active)
bb3mobi/seoimg (active)
bb3mobi/share42 (active)
boardtools/upload (active)
c61/brquotes (active)
c61/paragraph (active)
david63/faqmanager (active)
gfksx/ThanksForPosts (active)
hammer663/BoardRules (active)
hammer663/ConvertLocalUrlToLinkName (active)
marc/quickedit (active)
o0johntam0o/quickads (active)
rxu/PostsMerging (active)
sheer/change_search_type (active)
shredder/pai (active)
shredder/pm_spy (active)
tatiana5/quickreply (active)
vse/abbc3 (active)
vse/scrolltotop (active)
apwa/adunits (disabled)
tatiana5/profileSideSwitcher (disabled)
!!!! Ошибка проявилась и без экстов
Какие стили у вас установлены в данный момент?: prosilver
Elegance (Light Blue)
Elegance
Simplicity (Blue)
Какие языковые пакеты установлены на вашей конференции?: Русский
Каков ваш уровень опыта?: Новичок в PHP, но не в phpBB
Когда возникла ваша проблема?: после обновления
Опишите вашу проблему: Ошибка при переходе в личном разделе в закладки вида:

Код: Выделить всё

Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (@) at position 0 (@): Unexpected character' in /var/www/site/data/www/www.forum.site.ru/phpbb/datetime.php:50 Stack trace: #0 /var/www/site/data/www/www.forum.site.ru/phpbb/datetime.php(50): DateTime->__construct('@', Object(DateTimeZone)) #1 /var/www/site/data/www/www.forum.site.ru/phpbb/user.php(720): phpbb\datetime->__construct(Object(phpbb\user), '@', Object(DateTimeZone)) #2 /var/www/site/data/www/www.forum.site.ru/includes/ucp/ucp_main.php(802): phpbb\user->format_date(NULL) #3 /var/www/site/data/www/www.forum.site.ru/includes/ucp/ucp_main.php(436): ucp_main->assign_topiclist('bookmarks', Array) #4 /var/www/site/data/www/www.forum.site.ru/includes/functions_module.php(674): ucp_main->main('main', 'bookmarks') #5 /var/www/site/data/www/www.forum.site.ru/ucp.php(369): p_master->load_active() #6 {main} thrown in /var/www/site/data/www/www.forum.site.ru/phpbb/datetime.php on line 50
На сервере был обновлен Debian c 6 на 7, и php с 5.3 на 5.4, после этого производилось обновление форума.
Других ошибок нет.

Создано при помощи генератора запросов в службу поддержки
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2209
Стаж: 16 лет 4 месяца
Откуда: Павлодар
Благодарил (а): 5 раз
Поблагодарили: 153 раза

Re: Ошибка при переходе в закладки в личном разделе

Сообщение nissin »

Одна из тем находящаяся в закладках была удалена из БД. Вычислить её можно запросом типа:

Код: Выделить всё

SELECT b.*, t.topic_time FROM phpbb_bookmarks b LEFT JOIN phpbb_topics t ON b.topic_id=t.topic_id WHERE t.topic_time IS NULL
Всё повторяется. nurlan.info
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 4 месяца
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 241 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение Alecto »

Разве тема при удалении не должна также удаляться из закладок?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16372
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение rxu »

Смотря как тема удалялась.
Изображение
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение Sheer »

nissin писал(а): Одна из тем находящаяся в закладках была удалена из БД
Вчера ночью посмотрел - там таких не одна. Что самое интересное на локалке с той же БД этой ошибки нет. Просто имеем сообщение "У вас нет закладок". Если произвести некоторые манипуляции с datetime.php,

Код: Выделить всё

        if($time == '@')
        {
            $time = '@'.time();
        }
ошибка исчезает и в списке закладок имеем "Тема была удалена из базы данных". Можно отметить закладку чекбоксом и удалить.

Вот непонятно. Ошибка возникает потому, что если тема удалена, невозможно определить время ее создания, получается не пусто, а NULL, и он передается конструктору в datetime.php, а по идее ведь,если аргумент $time не задан, он приобретает значение now

Код: Выделить всё

public function __construct($user, $time = 'now', \DateTimeZone $timezone = null)
В общем это похоже на баг движка. Не должно быть такой коллизии.

Кстати, непонятно почему в закладках остались записи от удаленных тем. По идее при удалении темы они должны быть удалены из таблицы bookmarks
Тоже косяк 3.0.7PL1 (Обновление было с этой версии)?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
romeo_piter
phpBB 2.0.21
Сообщения: 1322
Стаж: 15 лет 1 месяц
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение romeo_piter »

Выборка дала аж 1300 записей :shock: Откуда столько удаленных тем ума не приложу.
Не подскажете скуль для удаления, плз.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение Sheer »

Чё-то скуль не придумывается... зато

Код: Выделить всё

<?php

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');

$sql = 'SELECT b.*, t.topic_time
    FROM '. BOOKMARKS_TABLE . ' b
    LEFT JOIN '. TOPICS_TABLE . ' t
    ON b.topic_id=t.topic_id
    WHERE t.topic_time IS NULL';
$result = $db->sql_query($sql);
$orph = array();
while ($row = $db->sql_fetchrow($result))
{
    $orph[] = $row['topic_id'];
}
$db->sql_freeresult($result);
if (sizeof($orph))
{
    $sql = 'DELETE FROM '. BOOKMARKS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', array_unique($orph), false, true);
    $db->sql_query($sql);
    $messqage = "Orphaned bookmarks was removed successfully!";
}
else
{
    $messqage = "Orphaned bookmarks not found!";
}
trigger_error($messqage); 
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16372
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение rxu »

Sheer, 'now' будет, если аргумент пропущен, а если он передан, то что передано, то и будет, в данном случае NULL.
Изображение
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение Sheer »

Да я понял... вот нафига туда NULLотдается? Вот этого я не понимаю. Зачем?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16372
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение rxu »

Всё просто. Идет вызов $user->format_date($row['topic_time']);
Этот самый topic_time - NULL, он передается в конструктор datetime-а, и понеслась.
Изображение
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение Sheer »

Я понимаю, но значит в случае такой фигни с базой нужно отдавать не $row['topic_time'], а 0 или текущее время.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16372
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение rxu »

Так и есть. Вечером отправлю тикет и патч в ядро, баг это.
Изображение
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение Sheer »

rxu писал(а): баг это
И я о том же...
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
romeo_piter
phpBB 2.0.21
Сообщения: 1322
Стаж: 15 лет 1 месяц
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение romeo_piter »

Sheer писал(а): Чё-то скуль не придумывается... зато
Спасибо. Теперь всё отлично.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16372
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

Re: Ошибка при переходе в закладки в личном разделе

Сообщение rxu »

Интересно, с подписками та же картина?
Изображение

Вернуться в «Поддержка phpBB 3.1.x»