Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Taaliman

Новачок
  
  • Публікації

    10
  • З нами

  • Відвідування

Відвідувачі профілю

Блок відвідувачів профілю відключений і не буде доступний широкому іншим користувачам

Taaliman's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Collaborator
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

1

Репутація

  1. По-хорошему, файл system/library/session/db.php должен быть таким: <?php /* CREATE TABLE IF NOT EXISTS `session` ( `session_id` varchar(32) NOT NULL, `data` mediumtext NOT NULL, `expire` datetime NOT NULL, PRIMARY KEY (`session_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; */ namespace Session; final class DB { public $expire = ''; public function __construct($registry) { $this->db = $registry->get('db'); $this->expire = ini_get('session.gc_maxlifetime'); $this->gc(); } public function read($session_id) { $query = $this->db->query("SELECT `data` FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "' AND expire > now()"); if ($query->num_rows) { return json_decode($query->row['data'], true); } else { return false; } } public function write($session_id, $data) { if ($session_id) { $this->db->query("REPLACE INTO `" . DB_PREFIX . "session` SET session_id = '" . $this->db->escape($session_id) . "', `data` = '" . $this->db->escape(json_encode($data)) . "', expire = DATE_ADD(NOW(), INTERVAL " . $this->expire . " SECOND)"); } return true; } public function destroy($session_id) { $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "'"); return true; } public function gc() { $this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE expire <= now()"); return true; } } Тут на самом деле три фикса: Более правильная работа с полем expire, используя только возможности MySQL. Для поля data следует использовать гораздо больше, чем 64Кб (т. е. вместо TEXT лучше юзать MEDIUMTEXT, чего вполне должно хватить на все случаи жизни). На практике у меня ломались сессии из-а того, что накапливалось около 1Мб сессионных данных и они тупо не сохранялись из-за чего в магазине происходила мистика. В метод gc() нет необходимости передавать параметр. Обратил внимание, что даже в master-ветке opencart-а на github-е, фиксы какие-то странные. Хотелось бы услышать критику по этим фиксам и может я что-то не учёл.
  2. На дворе 2020, а я столкнулся с той же проблемой сессий. Удивляет сам факт, что почти за два года проблему так и не пофиксили. Посмотрел репозиторий opencart-а на github-и вроде бы работа идёт полным ходом, хотя ветка 3.0.x какая-то заброшенная и активно идёт работа над веткой 3.1.x. Не значит ли это, что ветка 3.0.x обречена и все фиксы делаются в 3.1.x?
  3. 1. Важно, чтобы использовался шаблон (Customer register), редактируемые через этот модуль. 2. Да много чего может быть со временем. К примеру: параметры генерируемого пароля (только буквы, только цифры, буквы+цифры+спецсимволы) флаг, указывающий, нужно ли делать автологин после регистрации (по-умолчанию - не нужно). Страница, куда делать редирект, после регистрации (актуален, в случае, если флаг автологина после регистрации не установлен). редиректить например на страницу логина (/login). название поля, которое можно использовать в шаблоне письма (например, {password}). дефолтные значения для разных полей (имя, фамилия и т. д.)
  4. Simple разве без рукопликладств сможет предоставить форму с одним email-ом и автогенерацией пароля отправляемого в письме?
  5. OC: 3.0.3.2 Theme: FeelMart Требуется разработать модуль для регистрации по email. Форма регистрации должна быть настраиваемой и по-умолчанию использовать стили темы, пример формы по-умолчанию: --------------------------------------------------------- Email | Введите свой email | * На ваш почтовый адрес будет отправлен пароль Ваши личные данные будут использоваться для улучшения качества обслуживания, для управления доступом к вашей учетной записи и для других целей, описанных в "политика конфидеyциальности". [ РЕГИСТРАЦИЯ ] --------------------------------------------------------- На бэкенде должен создаваться пользователь и ему должно отправляться уведомление со сгенерированным паролем. При этом для шаблона письма должны использоваться настройки модуля (там есть возможность привязывать шаблоны к любым письмам, отсылаемым из пользовательских модулей). Разрабатывать полноценныйраздел для админки на начальном этапе нет необходимости, достаточно, чтобы была возможность всё настраивать через конфиг. В дальнейшем, когда модуль будет доведён до ума, для модуляможно будет разработать удобные раздел с настройками в админке. Все остальные детали касательно интеграции с темой уже обсудим в процессе. С предложениями пишите в личку. P.S.: Хотелось бы найти разработчика,с кем можно будет работать в длительной перспективе и по другим доработкам и модулям.
  6. Приветствую! Подскажите, чем ваш модуль отличается от http://cdek.opencart.ru/? И на сколько он хорошо будет дружить с нестандартной темой (например, FeelMart)?
  7. Ну вы же понимаете, что теряете порядка 30% клиентов, которые из-за этого не покупают ваш модуль? Это боязнь чего? Что покупатель будет сам заниматься поддержкой или начнёт барыжить им параллельно или что-то другое? Вот просто интересно. Скажем, появится поддержка ionCube для 7.4 и появится версия PHP 7.5 без поддержки ionCube. Я как правило по готовности релиза, обновляюсь до максимальной версии. И что, опять никак? Или мне из-за вашего модуля не будет возможным обновиться? )) Надбавьте тогда немного по стоимости, да продайте мне без ionCube, просто это идиотизм какой-то, если по-чесноку.
  8. У меня на серваке PHP 7.4.4. IonCube с ним пока не дружит. Понижать версию PHP и ломать тонко настроенную конфигу я не хочу. Как мне приобрести ваш модуль GeoIP Pro?
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.