Ошибки модуля "Пользователи"

  • 7 Ответов
  • 2291 Просмотров

Smolenkov_BN

  • Сообщений: 28
    • Просмотр профиля
Ошибки модуля "Пользователи"
« : 18 Апреля 2017, 15:51:22 »
1. Администратор не может зарегистрировать пользователя. Регистрация включена, дополнительные группы пользователей включены.
2. Попытка администрирования "Дополнительные группы" в модуле "Пользователи" вызывает ошибки (см. вложение файл "error.png")

Neon

  • Сообщений: 700
    • Просмотр профиля
    • Danneo CMS
Re: Ошибки модуля "Пользователи"
« Ответ #1 : 18 Апреля 2017, 17:06:11 »
Окружение сервера приведите.

1. что выдает, молча не добавляется?
2. попробуйте заменить файл admin/mod/user/index.php на новый из архива.
DANNEO ™

Smolenkov_BN

  • Сообщений: 28
    • Просмотр профиля
Re: Ошибки модуля "Пользователи"
« Ответ #2 : 21 Апреля 2017, 22:23:49 »
Причина ошибок не связана с сервером. Ошибки появляются после неоднократной интеграции внешних форумов PHPBB, PunBB и SMF. Без интеграции внешних форумов CMS функционирует исключительно правильно.

Neon

  • Сообщений: 700
    • Просмотр профиля
    • Danneo CMS
Re: Ошибки модуля "Пользователи"
« Ответ #3 : 22 Апреля 2017, 09:55:36 »
Ну, собственно, при включении интеграции не зря группы отключаются автоматически, и не нужно их пытаться включить принудительно.
Так как, при включенной интеграции весь функционал управления пользователями переходит к форуму.

Второе, при каждой смене интеграции с одного форума на другой, промежуточным действием обязательно должно быть выключение интеграции.
Через пункт ( — — — ).
Выключаете, потом только включаете другой форум.
Только в этом случае, происходит корректное пере кеширование данных интеграции.
« Последнее редактирование: 22 Апреля 2017, 10:00:18 от Neon »
DANNEO ™

Diket

  • Сообщений: 17
    • Просмотр профиля
Re: Ошибки модуля "Пользователи"
« Ответ #4 : 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 и сохраняю.
Захожу снова в редактирование этого пользователя. В новом поле есть отредактированные значения, а Варнингов и Нотисов нет.

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

« Последнее редактирование: 23 Июня 2018, 12:55:36 от Diket »

Diket

  • Сообщений: 17
    • Просмотр профиля
Re: Ошибки модуля "Пользователи"
« Ответ #5 : 24 Июня 2018, 23:31:35 »
Попробовал изменить версию php и Apache - не помогло, ошибки остались.

Smolenkov_BN

  • Сообщений: 28
    • Просмотр профиля
Re: Ошибки модуля "Пользователи"
« Ответ #6 : 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>';
}

Neon

  • Сообщений: 700
    • Просмотр профиля
    • Danneo CMS
Re: Ошибки модуля "Пользователи"
« Ответ #7 : 03 Апреля 2019, 11:26:29 »
Smolenkov_BN, что-то вы намудрили Json-данными.
Там проблема только с функцией даты.
Исправляется добавлением одной сроки в разделе дат:
// Дата
if ($item['fieldtype'] == 'date')
{
$value = empty($value) ? array('d' => 1, 'm' => 1, 'y' => 1971) : $value;
На сайте в профиле, и в админ-панели.

Исправлено, файлы в архиве.
Заодно по другим полям прошелся.
Радио кнопки и выпадающий список - были перепутаны элементы со значениями.
« Последнее редактирование: 03 Апреля 2019, 11:28:00 от Neon »
DANNEO ™