vonhamster Posted January 30, 2013 Share Posted January 30, 2013 Понимаю, что этот вопрос поднимался не один раз, и я уже попробовал много способов, но ничего не помогает. Итак - установил последнюю версию системы (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 что включить или выключить - хотя инсталлятор все пропустил - везде все Ок), или настройки окружения. Link to comment Share on other sites More sharing options...
vonhamster Posted January 30, 2013 Author Share Posted January 30, 2013 Покопался в коде - предварительная проблема - не проходит проверку контрольная сумма в куках. Копаюсь дальше. Link to comment Share on other sites More sharing options...
vonhamster Posted January 30, 2013 Author Share Posted January 30, 2013 Предварительно проблема решена. Итак, вот что удалось выяснить: В файле 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 или отключение этого расширения для строковых функций. При этом в системе это никак не проверяется. ЗЫ... Может кому будет это полезно, или кто-то сообщит это разработчикам. В данный момент - я столкнулся с данной системой только по необходимости и пока не думаю ее использовать в качестве основной. Link to comment Share on other sites More sharing options...
SpeLL_Itch Posted July 15, 2013 Share Posted July 15, 2013 (edited) Я только начинаю разбираться с движком. Поставил последнюю версию Prestashop. Папку admin согласно инструкции переименовал. Перехожу на страницу авторизации, ввожу логин, пароль. Страница перезагружается и отображается снова форма авторизации с пустыми полями логин и пароль. Подскажите куда купать? Edited July 15, 2013 by SpeLL_Itch (see edit history) Link to comment Share on other sites More sharing options...
vonhamster Posted July 15, 2013 Author Share Posted July 15, 2013 У меня была ситуация похожа - см. выше. Для начала сравни контрольные суммы, которые считаются и хранятся. Если они совпадают - то нужно построчно отлавливать - где падает. Link to comment Share on other sites More sharing options...
SpeLL_Itch Posted July 15, 2013 Share Posted July 15, 2013 У меня была ситуация похожа - см. выше. Для начала сравни контрольные суммы, которые считаются и хранятся. Если они совпадают - то нужно построчно отлавливать - где падает. Проблема в том, что я не программист, немного знаю пхп, html и css. Сегодня престу первый раз в глаза увидел. И вот такая ситуация наблюдается. До этого работал на уровне пользователя с UMI CMS, но с таким не сталкивался. Отсюда вопрос, контрольные суммы чего и где надо сравнивать. Link to comment Share on other sites More sharing options...
vonhamster Posted July 15, 2013 Author Share Posted July 15, 2013 Тогда, из того, что можешь сделать - только попытаться сбросить кэш и куки. Иначе - только программист. Если я правильно понимаю ситуацию, то система сейчас активно переписывается с учетом новых версий php и технологий. Но такой объем быстро переработать сложно, потому остаются старые куски кода, которые могут работать не так как раньше. Попробуй найти и заменить одно число там, где я написал, затем сбрось кэш и куки. Если не сработает - то дело в чем-то другом. Верни все обратно. Link to comment Share on other sites More sharing options...
SpeLL_Itch Posted July 15, 2013 Share Posted July 15, 2013 (edited) Нашёл, поменял, не помогло, вернул на место. Я так понимаю, что никакой документации для разрабов на русском нет? Я целое утро лазил в обнимку с гуглом по разным форумам, находя хвосты похожих на мою проблему. Пробовал указывать константу define('__PS_BASE_URI__', '/'), которой в моём конфиге в принципе не было. Тоже не помогло. Edited July 15, 2013 by SpeLL_Itch (see edit history) Link to comment Share on other sites More sharing options...
vonhamster Posted July 15, 2013 Author Share Posted July 15, 2013 тогда только построчно отлавливать - где отваливается. Link to comment Share on other sites More sharing options...
SpeLL_Itch Posted July 15, 2013 Share Posted July 15, 2013 А как это делается? Что прочитать для этого? Link to comment Share on other sites More sharing options...
vonhamster Posted July 15, 2013 Author Share Posted July 15, 2013 Быстро - достаточно сложно. Для начала нужно получить основы php. Если с английским хотя-бы на уровне чтения и понимания - то начальные навыки можно получить здесь: http://www.codecademy.com/ru/tracks/php Затем понять, как работают отдельные компоненты приложений (авторизация, работа с базой, шаблоны...) После - разобраться, как работает приложение в целом. А потом уже искать где в коде расположена, в данном случае, авторизация, и в простом случае - выводить отладочную информацию прям на страницу или в файл. В более сложном случае (в смысле - нужна настройка дополнительной библиотеки для отладки, например, xdebug) - настраивать IDE. Да, забыл еще - это все нужно смотреть с учетом особенностей php, вплоть до версий. Link to comment Share on other sites More sharing options...
SpeLL_Itch Posted July 15, 2013 Share Posted July 15, 2013 Спасибо. Я год назад прочитал вот это но потом програминг заглох на долгое-долгое-долгое время. А недавно друг попросил помочь с инте-магазином, но ятак понял сразу браться за какой-либо движок рановато, так? Link to comment Share on other sites More sharing options...
vonhamster Posted July 15, 2013 Author Share Posted July 15, 2013 Не совсем так. Как раз в твоем случае нужен движок, другое дело - нужно подобрать его под себя. Не нужно останавливаться на одном - их очень много - для себя можно подобрать удобный. Я в свое время почти месяц устанавливал и пробовал разные движки, пока не выбрал для себя инструмент, но и он оказался не идеальным. Попробуй посмотреть другие движки, причем не останавливайся на бесплатных, особенно, если будешь не один раз использовать, например, http://shopcms.ru/ - попробуй (я к данной системе не имею никакого отношения, просто недавно попробовал, вроде адекватная система), если устроит - цены не особо большие (я думаю, для одного сайта-магазина - 50 баксов вложиться - не проблема, а если сделаешь своим инструментом, то и 200 баксов - не так много, особенно, если часть этой стоимости (или полностью) заложить в стоимость работ). Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now