Jump to content

Авторизация после установки


Recommended Posts

Понимаю, что этот вопрос поднимался не один раз, и я уже попробовал много способов, но ничего не помогает.

 

Итак - установил последнюю версию системы (1.5.3.1) - установка прошла без проблем, не вылезло ни единой ошибки, письма с авторизационными данными пришли на почту, фронт открывается, по ссылкам ходит, регистрация нового пользователя проходит, восстановление пароля работает. install удалил, папку админки переименовал. Стоит чистый апач, php 5.3.3

 

Пытаюсь зайти в админку или в личный кабинет - если ввожу некорректные данные - выскакивает ошибка. Если корректные - ошибки нет, но редиректит обратно на форму логина.

 

По поиску данной проблемы пробовал сделать следующее (ничего не помогло):

1. Очистка кэшей на сервере и в браузере (вплоть до перезагрузки системы и браузеров, запуска с виртуальной машины, под разными операционками (Debian, Win 7) и в других браузерах (IE, Chrome, Chromium, FF, opera))

2. Проверка константы (define('__PS_BASE_URI__', '/');) (в том числе использовал советы для 1.4 версии)

3. Замена паролей (перетаскивание пароля из пользователя админу и наоборот через базу)

4. Замена файла Cookie.php в override/classes/

5. Места хватает, сессии работают

6. Права на файловой системе тоже те, что нужно.

 

Где еще можно посмотреть, может какие настройки сервера нужны особые (може в php что включить или выключить - хотя инсталлятор все пропустил - везде все Ок), или настройки окружения.

Share this post


Link to post
Share on other sites

Предварительно проблема решена. Итак, вот что удалось выяснить:

 

В файле classes/Cookie.php на строках 272-273 следующий код:

/* Get cookie checksum */

$checksum = crc32($this->_iv.substr($content, 0, strrpos($content, '¤') + 2));


 

Решение - заменить +2 на +1

 

Подробнее:

Смысл ошибки в том, что при создании контрольной суммы - берется исходная строка, вычисляется контрольная сумма, а затем дописывается к исходной строке (см. метод write в том-же файле), а при проверке - из исходной строки выдирается подстрока до контрольной суммы и заново считается. Но при подсчете позиции конца исходной строки используется последний знак ¤ (который является разделителем между параметрами), и, чтобы этот знак попал в контрольную сумму - делается отступ на 2 шага вместо 1.

 

Для чего отступ делается на 2 символа? Есть предположение, что это связано с тем, что предполагалось отсутствие mbstring или отключение этого расширения для строковых функций. При этом в системе это никак не проверяется.

 

ЗЫ... Может кому будет это полезно, или кто-то сообщит это разработчикам. В данный момент - я столкнулся с данной системой только по необходимости и пока не думаю ее использовать в качестве основной.

Share this post


Link to post
Share on other sites
  • 5 months later...

Я только начинаю разбираться с движком. Поставил последнюю версию Prestashop. Папку admin согласно инструкции переименовал.

Перехожу на страницу авторизации, ввожу логин, пароль. Страница перезагружается и отображается снова форма авторизации с пустыми полями логин и пароль.

Подскажите куда купать?

Edited by SpeLL_Itch (see edit history)

Share this post


Link to post
Share on other sites

У меня была ситуация похожа - см. выше. Для начала сравни контрольные суммы, которые считаются и хранятся. Если они совпадают - то нужно построчно отлавливать - где падает.

Share this post


Link to post
Share on other sites

У меня была ситуация похожа - см. выше. Для начала сравни контрольные суммы, которые считаются и хранятся. Если они совпадают - то нужно построчно отлавливать - где падает.

Проблема в том, что я не программист, немного знаю пхп, html и css. Сегодня престу первый раз в глаза увидел. И вот такая ситуация наблюдается. До этого работал на уровне пользователя с UMI CMS, но с таким не сталкивался.

Отсюда вопрос, контрольные суммы чего и где надо сравнивать.

Share this post


Link to post
Share on other sites

Тогда, из того, что можешь сделать - только попытаться сбросить кэш и куки. Иначе - только программист. Если я правильно понимаю ситуацию, то система сейчас активно переписывается с учетом новых версий php и технологий. Но такой объем быстро переработать сложно, потому остаются старые куски кода, которые могут работать не так как раньше.

 

Попробуй найти и заменить одно число там, где я написал, затем сбрось кэш и куки. Если не сработает - то дело в чем-то другом. Верни все обратно.

Share this post


Link to post
Share on other sites

Нашёл, поменял, не помогло, вернул на место.

Я так понимаю, что никакой документации для разрабов на русском нет? Я целое утро лазил в обнимку с гуглом по разным форумам, находя хвосты похожих на мою проблему. Пробовал указывать константу define('__PS_BASE_URI__', '/'), которой в моём конфиге в принципе не было. Тоже не помогло.

Edited by SpeLL_Itch (see edit history)

Share this post


Link to post
Share on other sites

Быстро - достаточно сложно.

Для начала нужно получить основы php. Если с английским хотя-бы на уровне чтения и понимания - то начальные навыки можно получить здесь: http://www.codecademy.com/ru/tracks/php

Затем понять, как работают отдельные компоненты приложений (авторизация, работа с базой, шаблоны...)

После - разобраться, как работает приложение в целом.

А потом уже искать где в коде расположена, в данном случае, авторизация, и в простом случае - выводить отладочную информацию прям на страницу или в файл. В более сложном случае (в смысле - нужна настройка дополнительной библиотеки для отладки, например, xdebug) - настраивать IDE.

 

Да, забыл еще - это все нужно смотреть с учетом особенностей php, вплоть до версий.

Share this post


Link to post
Share on other sites

Спасибо. Я год назад прочитал вот это но потом програминг заглох на долгое-долгое-долгое время.

А недавно друг попросил помочь с инте-магазином, но ятак понял сразу браться за какой-либо движок рановато, так?

Share this post


Link to post
Share on other sites

Не совсем так. Как раз в твоем случае нужен движок, другое дело - нужно подобрать его под себя. Не нужно останавливаться на одном - их очень много - для себя можно подобрать удобный. Я в свое время почти месяц устанавливал и пробовал разные движки, пока не выбрал для себя инструмент, но и он оказался не идеальным. Попробуй посмотреть другие движки, причем не останавливайся на бесплатных, особенно, если будешь не один раз использовать, например, http://shopcms.ru/ - попробуй (я к данной системе не имею никакого отношения, просто недавно попробовал, вроде адекватная система), если устроит - цены не особо большие (я думаю, для одного сайта-магазина - 50 баксов вложиться - не проблема, а если сделаешь своим инструментом, то и 200 баксов - не так много, особенно, если часть этой стоимости (или полностью) заложить в стоимость работ).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More