GetSimple error login
Posted on 02 Октябрь 2012 in Веб разработка by wakh
Пожалуй главной проблемой CMS GetSimple можно назвать error login для входа в "админку".
Причин множество, но самая главная, в том что сама CMS не может спарсить проблемные файлы, будь то плагины или файлы настроек. При наличии таких проблем сайт зачастую продолжает работать, а войти в панель администрирования становится невозможным.
Ап1. Статья более не актуальна, после замены всех плагинов и самой КМС на современные, проблема входа исчезла на всех сайтах.
Права на папки
Стоит заметить, что для нормальной работы ЦМС требует установки прав 755 для ряда папок, но как убедился я и судя по форумам, не я один, для нормальной работы часто требуются права 777. Если вы не понимаете о чём я, то советую даже не пытаться установить эту ЦМС, будущие проблемы решать будет крайне сложно. Поэтому перед установкой, лучше поставить 777, а после настройки вернуть 755.
Установка на поддомен
При установке на домен 3-го уровня (поддомен) на некоторых хостингах была замечена ещё 1 проблема, которая не возникает на доменах 2-го уровня. Суть в том, что адрес (для примера возтму свой сайт) wakh.ru не делает редирект на wakh.ru/index.php, казалось бы снова виноват хостер, однако мне не понятно, почему в дистрибутиве ЦМСки,в файле .htaccess не добавлена строка
DirectoryIndex index.php
Это никак отрицательно не повлияет на работу ЦМС и сайта в целом, однако избавит нас от этой проблемы.
Проблема со входом "админку"
Первое проблема возникает, когда администратор забывает сгенерированный пароль, а при попытке восстановить, пароль не высылается на почту. На профильном форуме все "гуру" утверждают что это проблемы хостинга, не берусь это оспаривать, но проблемы входа это не решает, так как провайдер хостинга врядли будет заниматься поиском решения если ему сказать, что мол моя ЦМСка письма не шлёт.
Плагины - Зло
Любой устаревший плагин может быть её причиной, почему бы ЦМС не проверять плагин перед загрузкой? А эта ситуайия кочует из версии в версию. Однако даже если удалить все плагины, дальше идут варианты ресета пароля и тут начинается цирк.
Пароль хранится в файле data/users/name.xml, где name это ваш логин, он кстати дублируется и в самом файле, в теге <USR></USR>, пароль же зашифрован алгоритмом SHA1 и хранится в теге <PWD></PWD>, казалось бы всё просто, берём любой SHA1 генератор, входим с новым паролем, но снова облом. Даже если мы удалили все плагины.
Я не претендую на истину в последней инстанции, но в моём случае проблема оказалась в следующем.
В файле с паролем name.xml помимо заголовка (<?xml version="1.0"?>), существует ещё такой набор тэгов:
<item>
<USR></USR> - Имя
<PWD></PWD> - пароль защифрованный SHA1
<EMAIL></EMAIL> - мыло для восстановления (на которое у многих ничего не восстанавливается)
<HTMLEDITOR>1</HTMLEDITOR> - неважно, но подозреваю, что настройка режима редактирования: HTML, WYSIWYG или любой другой редактор
<TIMEZONE>Europe/Moscow</TIMEZONE> - временная зона
<LANG>ru_RU</LANG> - язык (опять же, наверняка будет проблема если указать язык, но удалить языковой файл)
</item>
Так вот, все тэги должны быть заполнены! (В примере, по понятным причиная, я стёр значения первых трёх.) Я не знаю почему, но на проблемных сайтах тэг <TIMEZONE></TIMEZONE> у меня был пустым. Догадки, почему, есть, но это уже интересно создателям ЦМСки, нам же, пользователям, важно просто заполнить его. Если вы можете прочитать этот пост, то значение Europe/Moscow может вам вполне подойти. После этого можно спокойно ресетить пароль через SHA1 генератор и создавать других пользователей.
На момент написания поста, актуальная версия была 3.1.2, в ней проблема и была решена на 3х сайтах.
Проблема не решена!
Как оказалось проблема не решилась. На всех 3х сайтах мне удалось сделать логин с домашнего компа (Windows 8 x64), но не удалось с рабочего (Windows Vista x64).
Salt
С недавнего времени в ЦМС вненедрена дополнительная защита - salt. По умолчанию она откючена (думаю как раз изза множества проблем с логином), но если вы используете её то просто использовать SHA1 генератор у вас не получится, самым простым решением, является временное отключение защиты и смены пароля. На себе не проверял, но примерно так советуют на англоязычном форуме поддержки GetSimple.