Jump to content

vonhamster

Members
  • Posts

    9
  • Joined

  • Last visited

Profile Information

  • Activity
    Freelancer

vonhamster's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Не совсем так. Как раз в твоем случае нужен движок, другое дело - нужно подобрать его под себя. Не нужно останавливаться на одном - их очень много - для себя можно подобрать удобный. Я в свое время почти месяц устанавливал и пробовал разные движки, пока не выбрал для себя инструмент, но и он оказался не идеальным. Попробуй посмотреть другие движки, причем не останавливайся на бесплатных, особенно, если будешь не один раз использовать, например, http://shopcms.ru/ - попробуй (я к данной системе не имею никакого отношения, просто недавно попробовал, вроде адекватная система), если устроит - цены не особо большие (я думаю, для одного сайта-магазина - 50 баксов вложиться - не проблема, а если сделаешь своим инструментом, то и 200 баксов - не так много, особенно, если часть этой стоимости (или полностью) заложить в стоимость работ).
  2. Быстро - достаточно сложно. Для начала нужно получить основы php. Если с английским хотя-бы на уровне чтения и понимания - то начальные навыки можно получить здесь: http://www.codecademy.com/ru/tracks/php Затем понять, как работают отдельные компоненты приложений (авторизация, работа с базой, шаблоны...) После - разобраться, как работает приложение в целом. А потом уже искать где в коде расположена, в данном случае, авторизация, и в простом случае - выводить отладочную информацию прям на страницу или в файл. В более сложном случае (в смысле - нужна настройка дополнительной библиотеки для отладки, например, xdebug) - настраивать IDE. Да, забыл еще - это все нужно смотреть с учетом особенностей php, вплоть до версий.
  3. тогда только построчно отлавливать - где отваливается.
  4. Тогда, из того, что можешь сделать - только попытаться сбросить кэш и куки. Иначе - только программист. Если я правильно понимаю ситуацию, то система сейчас активно переписывается с учетом новых версий php и технологий. Но такой объем быстро переработать сложно, потому остаются старые куски кода, которые могут работать не так как раньше. Попробуй найти и заменить одно число там, где я написал, затем сбрось кэш и куки. Если не сработает - то дело в чем-то другом. Верни все обратно.
  5. У меня была ситуация похожа - см. выше. Для начала сравни контрольные суммы, которые считаются и хранятся. Если они совпадают - то нужно построчно отлавливать - где падает.
  6. При импорте товаров из csv файла - не создается категория (в csv файле категория есть, и соответствующее поле помечено, но категория не импортируется). Решил покопаться в коде, и обнаружил такую штуку (не могу не написать, у меня просто слов нет, чем руководствовались разработчики, когда это писали). Более того, если у вас тормозит импорт - это как раз одна из причин. Итак - файл controllers/admin/AdminImportController.php protected static function split($field) { if (empty($field)) return array(); $separator = Tools::getValue('multiple_value_separator'); if (is_null($separator) || trim($separator) == '') $separator = ','; do $uniqid = uniqid(); while (file_exists(_PS_UPLOAD_DIR_.$uniqid)); $tmp_file = file_put_contents(_PS_UPLOAD_DIR_.$uniqid, $field); $fd = fopen($temp, 'r'); $tab = fgetcsv($fd, MAX_LINE_SIZE, $separator); fclose($fd); unlink($tmp_file); if (empty($tab) || (!is_array($tab))) return array(); return $tab; } Вопрос: чем не устроила стандартная функция explode? Решение (ну по данному коду ошибка в том, что пишется в _PS_UPLOAD_DIR_.$uniqid читается из некоего $temp). Я переписал для себя так: protected static function split($field) { if (empty($field)) return array(); $separator = Tools::getValue('multiple_value_separator'); if (is_null($separator) || trim($separator) == '') $separator = ','; $tab = explode($separator, $field); if (empty($tab) || (!is_array($tab))) return array(); return $tab; }
  7. Предварительно проблема решена. Итак, вот что удалось выяснить: В файле 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 или отключение этого расширения для строковых функций. При этом в системе это никак не проверяется. ЗЫ... Может кому будет это полезно, или кто-то сообщит это разработчикам. В данный момент - я столкнулся с данной системой только по необходимости и пока не думаю ее использовать в качестве основной.
  8. Покопался в коде - предварительная проблема - не проходит проверку контрольная сумма в куках. Копаюсь дальше.
  9. Понимаю, что этот вопрос поднимался не один раз, и я уже попробовал много способов, но ничего не помогает. Итак - установил последнюю версию системы (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 что включить или выключить - хотя инсталлятор все пропустил - везде все Ок), или настройки окружения.
×
×
  • Create New...