DANNEO CMS

Danneo CMS 1.5.x => Ошибки => Тема начата: Smolenkov_BN от 18 Апреля 2017, 15:51:22

Название: Ошибки модуля "Пользователи"
Отправлено: Smolenkov_BN от 18 Апреля 2017, 15:51:22
1. Администратор не может зарегистрировать пользователя. Регистрация включена, дополнительные группы пользователей включены.
2. Попытка администрирования "Дополнительные группы" в модуле "Пользователи" вызывает ошибки (см. вложение файл "error.png")
Название: Re: Ошибки модуля "Пользователи"
Отправлено: Neon от 18 Апреля 2017, 17:06:11
Окружение сервера приведите.

1. что выдает, молча не добавляется?
2. попробуйте заменить файл admin/mod/user/index.php на новый из архива.
Название: Re: Ошибки модуля "Пользователи"
Отправлено: Smolenkov_BN от 21 Апреля 2017, 22:23:49
Причина ошибок не связана с сервером. Ошибки появляются после неоднократной интеграции внешних форумов PHPBB, PunBB и SMF. Без интеграции внешних форумов CMS функционирует исключительно правильно.
Название: Re: Ошибки модуля "Пользователи"
Отправлено: Neon от 22 Апреля 2017, 09:55:36
Ну, собственно, при включении интеграции не зря группы отключаются автоматически, и не нужно их пытаться включить принудительно.
Так как, при включенной интеграции весь функционал управления пользователями переходит к форуму.

Второе, при каждой смене интеграции с одного форума на другой, промежуточным действием обязательно должно быть выключение интеграции.
Через пункт ( — — — ).
Выключаете, потом только включаете другой форум.
Только в этом случае, происходит корректное пере кеширование данных интеграции.
Название: Re: Ошибки модуля "Пользователи"
Отправлено: Diket от 23 Июня 2018, 12:53:14
Danneo 154, Виндовс 7, ОпенСервер

В Пользователи - Добавить поле выбираю тип Дата, жму Добавить.
В поле Название в форме пишу ndate, а в поле Название - Ндата. Жму добавить.

Перехожу в Пользователи - Список пользователей и выбираю пользователя для редактирования.
В группе Дополнительные поля получаю примерно 600 строк с текстом:
Warning: Illegal string offset 'd' in F:\OpenServer\domains\danneo154\admin\mod\user\index.php on line 653
Notice: Uninitialized string offset: 0 in F:\OpenServer\domains\danneo154\admin\mod\user\index.php on line 653
Warning: Illegal string offset 'm' in F:\OpenServer\domains\danneo154\admin\mod\user\index.php on line 658
Notice: Uninitialized string offset: 0 in F:\OpenServer\domains\danneo154\admin\mod\user\index.php on line 658

А в низу добавленное поле есть  (день, месяц, год), устанавливаю нужные значения или оставляю умолчание 1.1.1971 и сохраняю.
Захожу снова в редактирование этого пользователя. В новом поле есть отредактированные значения, а Варнингов и Нотисов нет.

Если вызвать на редактирование другого пользователя с пустым новым полем, то опять варнинги и нотисы.

Название: Re: Ошибки модуля "Пользователи"
Отправлено: Diket от 24 Июня 2018, 23:31:35
Попробовал изменить версию php и Apache - не помогло, ошибки остались.
Название: Re: Ошибки модуля "Пользователи"
Отправлено: Smolenkov_BN от 25 Марта 2019, 19:22:36
Было получено:
- 31 сообщение
Warning: Illegal string offset 'd' in admin\mod\user\index.php
Notice: Uninitialized string offset: 0 in admin\mod\user\index.php
- 12 сообщений
Warning: Illegal string offset 'm' in admin\mod\user\index.php
Notice: Uninitialized string offset: 0 in admin\mod\user\index.php
- около 100 сообщений
Warning: Illegal string offset 'y' in admin\mod\user\index.php
Notice: Uninitialized string offset: 0 in admin\mod\user\index.php

Ошибка ликвидирована исправлением кодов в файле admin\mod\user\index.php:
				$ui = $db->fetchrow($db->query("SELECT userfield FROM ".$basepref."_user WHERE userid = '".$uid."'"));
$user = ( ! empty($ui['userfield'])) ? Json::decode($ui['userfield']) : Json::decode('{"1":"","2":{"d":15,"m":6,"y":'.(NEWYEAR-50).'},"3":"men","4":""}');
						if ($item['fieldtype'] == 'date')
{
$sel = ' <select name="'.$name.'[day]">';
for ($i = 1; $i < 32; $i ++) {
$sel.= ' <option value="'.$i.'"'.(($value['d'] == $i) ? ' selected' : '').'>'.$i.'</option>';
}
$sel.=   ' </select>&nbsp;'
.' <select name="'.$name.'[month]">';
for ($i = 1; $i < 13; $i ++) {
$sel.= ' <option value="'.$i.'"'.(($value['m'] == $i) ? ' selected' : '').'>'.$i.'</option>';
}
$sel.=   ' </select>&nbsp;'
.' <select name="'.$name.'[year]">';
for($i = (NEWYEAR - 100); $i < (NEWYEAR + 1); $i ++)
{
$sel.= ' <option value="'.$i.'"'.(($value['y'] == $i) ? ' selected' : '').'>'.$i.'</option>';
}
$sel.= ' </select>';
echo $sel;
}

Было получено:
- 31 сообщение
Warning: Illegal string offset 'd' in mod\user\index.php
Notice: Uninitialized string offset: 0 in mod\user\index.php
- 12 сообщений
Warning: Illegal string offset 'm' in mod\user\index.php
Notice: Uninitialized string offset: 0 in mod\user\index.php
- около 100 сообщений
Warning: Illegal string offset 'y' in mod\user\index.php
Notice: Uninitialized string offset: 0 in mod\user\index.php

Ошибка ликвидирована исправлением кодов в файле mod\user\index.php:
		$ui = $db->fetchassoc($db->query("SELECT userfield FROM ".$basepref."_user WHERE userid = '".$usermain['userid']."'"));
$user = ( ! empty($ui['userfield'])) ? Json::decode($ui['userfield']) : Json::decode('{"1":"","2":{"d":15,"m":6,"y":'.(NEWYEAR-50).'},"3":"men","4":""}');
					// Дни
$newfield.= '<select name="'.$name.'[day]">';
for ($i = 1; $i < 32; $i ++)
{
$newfield.= '<option value="'.$i.'"'.(($value['d'] == $i) ? ' selected' : '').'>'.$i.'</option>';
}
$newfield.= '</select>&nbsp;';

// Месяцы
$newfield.= '<select name="'.$name.'[month]">';
for ($i = 1; $i < 13; $i ++)
{
$newfield.= '<option value="'.$i.'"'.(($value['m'] == $i) ? ' selected' : '').'>'.$i.'</option>';
}
$newfield.= '</select>&nbsp;';

// Года
$newfield.= '<select name="'.$name.'[year]">';
for($i = (NEWYEAR - 100); $i < (NEWYEAR + 1); $i ++)
{
$newfield.= '<option value="'.$i.'"'.(($value['y'] == $i) ? ' selected' : '').'>'.$i.'</option>';
}