Добрый день! Помогите разобраться, при загрузке пользователей через csv файл выбивает ошибку - Некорректное имя поля «username», причём эту же ошибку выбивает даже с файлом примером example.csv. Пробовал и разные кодировки, и разные разделители выбивает одну и туже ошибку. Как вообще username может быть некорректным именем поля, просто голова кругом. Заранее спасибо
А если выгрузить пользователя и загрузить?
Выгрузил одного пользователя, сначала система руганулась на столбец id, когда удалил столбец id, стала снова ругаться на username
Причём заметил если удалить все столбцы кроме lastname и firstname, тогда файлик проходит, но толку от этого, если пароли, емэйлы и логины не прописываются.
Вопрос: а нет ли в загружаемом файле BOM заголовка? Оно ведь у вас ругается на первый столбец?
https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D1%80_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2
https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D1%80_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2
Ругается именно на столбцы username, password и email. Я пробовал их переставлять местами(ставить в конец их), lastname, firstname и middlename проходят спокойно. Я уже даже не знаю куда лезть смотреть, в плагинах я не нашёл настройку конкретно массовой загрузки, во всех выгрузках студентах столбец username присутствует. Да и суперстарнно, что даже предложенный самим мудлом файлик в качестве примера который, тоже не проходит, просто бред какой-то
Давай выгруженный CSV с одним пользователем. У себя грузану. чтобы исключить проблему в файле.
exampl и у меня выгруженный назад не хочет, но с другой ошибкой.
Ну вот например, кодировка utf-8, разделитель ;
Прошу прощения, а нет ли у вас в параметрах безопасности ограничений на используемое username - длина, большие, малые буквы, спецсимволы и т.п.
В настройках безопасности нечего такого не нашёл, да и в ручную эти пользователи грузятся спокойно
Ваш файл загрузился без проблем.
Я повторил ошибку. Ругается именно на название столбца "username", т.е. если я переименовываю столбец в "username1" получаю вашу ошибку.
Как бы у меня варианты в голове не появляются.
Если исключить варианты что правили код и таблицы. То надо проверять, наверное, целостность файлов и смотреть на корректность БД.
Уже самому интересно, может есть еще у кого-то варианты?
Я повторил ошибку. Ругается именно на название столбца "username", т.е. если я переименовываю столбец в "username1" получаю вашу ошибку.
Как бы у меня варианты в голове не появляются.
Если исключить варианты что правили код и таблицы. То надо проверять, наверное, целостность файлов и смотреть на корректность БД.
Уже самому интересно, может есть еще у кого-то варианты?
Мне это счастье досталось от другого человека, до которого уже не достучаться. Слишком глубоко лезть тоже стрёмно, так как от этого зависит работа целого ВУЗа.
Замечательно загружается ваш пример.
А не пробовали включить отладку и повторить загрузку? Может проблема не в файле.
А не пробовали включить отладку и повторить загрузку? Может проблема не в файле.
Вот, что пишет в режиме отладки. Кто может помочь разобраться?
А посмотри в поля профиля пользователя, может там что-то найдешь, похоже на них ругается, но как-то при загрузке, если их нет, то и нет, проблем небыло.
Не совсем понял куда смотреть, просто даже если удалить колонку username, такую же ошибку выдаёт и по полю password, т.е. проблема явно не только в логинах, также и по email. Проходят только ФИО
Очень странно. Проблема явно нестандартная.
А на чём у вас запущен moodle ?
Есть подозрение, что на вашем сервере что-то не так с настройкой php.
Нужно убедиться, что у вас в php есть расширение mbstring и оно использует utf-8 по умолчанию (см. администрирование/сервер/информация о php).
IMHO без расшрения mbstring moodle просто не должен работать (раньше не работал), но костыли в коде говорят, что без него тоже будет работать с использованием какой-то встроенной библиотеки.
На сколько оно "рабочее" я не знаю.
Чтобы понять что происходит можно временно подправить код:
в файле admin/tool/uploaduser/locallib.php найти строку:
print_error('invalidfieldname', 'error', $returnurl, $field);
Перед ней вставить код:
echo '<pre>',print_r($columns,1).print_r($stdfields,1),'</pre>';
А в самой строке заменить $field на $lcfield
И с этими изменениями попробовать загрузит csv файл.
Потом исправить назад.
А на чём у вас запущен moodle ?
Есть подозрение, что на вашем сервере что-то не так с настройкой php.
Нужно убедиться, что у вас в php есть расширение mbstring и оно использует utf-8 по умолчанию (см. администрирование/сервер/информация о php).
IMHO без расшрения mbstring moodle просто не должен работать (раньше не работал), но костыли в коде говорят, что без него тоже будет работать с использованием какой-то встроенной библиотеки.
На сколько оно "рабочее" я не знаю.
Чтобы понять что происходит можно временно подправить код:
в файле admin/tool/uploaduser/locallib.php найти строку:
print_error('invalidfieldname', 'error', $returnurl, $field);
Перед ней вставить код:
echo '<pre>',print_r($columns,1).print_r($stdfields,1),'</pre>';
А в самой строке заменить $field на $lcfield
И с этими изменениями попробовать загрузит csv файл.
Потом исправить назад.