Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Требуется сделать два php-модуля для WordPress и PrestaShop со следующим функционалом и логикой работы:

1. По умолчанию мы не даем доступ всем новым пользователям на сайт.

2. Всех, кто не прошел проверку, переадресуем на другой URL, установленный в настройках модулей.

3. Некоторым пользователям, IP которых определяется как IP из разрешенных регионов РФ (субъектов Российской Федерации), мы предоставляем доступ к сайтам.

4. В обоих случаях мы записываем результаты проверки в сессию и куки, и IP-больше не проверяем, пользуемся результатами проверки при первом заходе на сайт.

5. Проверку IP-адреса нужно делать GET-запросом, например:

http://ipgeobase.ru:7020/geo?ip=83.149.35.6

Данный сервис дает ответ в формате XML:

83.149.32.0 - 83.149.35.255

RU

Екатеринбург

Свердловская область

Уральский федеральный округ

56.837814

60.596844

6. Результат ответа сервиса не нужно парсить с помощью подключаемых XML-библиотек, чтобы не тормозить сайт. Нас интересует лишь строковая переменная между тегами .... К примеру «Свердловская область». Получаем переменную при помощи регулярного выражения.

7. Далее при помощи SQL-запроса, узнаем – есть ли в таблице «regions» в поле «ipgeobaseru» запись совпадающая с данной строковой переменной. Если такая запись есть и в полях «accessPS» (для модуля PrestaShop) и «accessWP» (для модуля WordPress) содержится значение «1», то пользователя пускаем на сайт, проверок IP-больше не делаем, используя механизмы сессии и куки. Время жизни куки не более 1 месяца.

Если регион – пустой, то доступ запрещаем и переадресуем на URL, см. п.2.

8. Уточнения

8.1. Таблица «regions» было сделана ранее для нашей CRM и название регионов уже было прописано в поле «regionName». Так как у сервиса «http://ipgeobase.ru:7020/geo?ip=» нет кодов/ID регионов и соответствующей таблицы регионов, а значение выдается сразу текстом, то мы добавили в таблицу «regions» дополнительное поле «ipgeobaseru» и названия регионов CTRL+C, CTRL+V скопировали из http://ipgeobase.ru/cgi-bin/region_list.cgi - «Алфавитный указатель регионов Российской Федерации». Таким образом решилась проблема части регионов, к примеру, у нас в базе была просто «Адыгея», а ipgeobase.ru будет выдавать в XML-ответе «Республика Адыгея», аналогично решилась проблема с сокращениями «Ненецкий АО», стал «Ненецкий автономный округ». Поэтому текстовый поиск по региону должен работать на 99%, так как названия субъектов РФ уже взяты и занесены в таблицу с сайта ipgeobase.ru.

8.2. Для наших сайтов будут использоваться версии движков сайтов самые последние – WordPress 4.3.1 и PrestaShop 1.6.1.1. Для отладки кода их можно взять с официальных сайтов: https://ru.wordpress.org/ и https://www.prestashop.com/. Нужна будет краткая инструкция по установке.

8.3. Столь странные требования к блокировке предъявляются в связи с тем, что в тех регионах РФ, которые мы блокируем, продажа нашего продукта идет через дилеров. И конечные клиенты, в регионах в которых работают наши дилеры со своей ценовой политикой, не должны видеть даже цены, которые мы предлагаем в регионах «без дилеров».

8.4. Модули не имеют отображения во фронт-офисе сайтов. Зато в бек-офисах WordPress и PrestaShop должна быть страница с настройками модулей – регионы РФ с включенным флажками для разрешенных регионов (настройки хранятся в таблице БД «regions»), включение/выключение работы модуля, URL-переадресации, включение/выключение ведения лога, поля БД где нужно смотреть разрешен ли доступ («accessPS», «accessWP» или может быть потом будут другие поля). Настройки модулей, кроме регионов, хранятся в текстовом файле в папке модуля.

8.5 Ведется лог работы проверки IP в формате:

Дата-время| IP | регион | от куда пришел и другие подробности, которые могут помочь удалить от туда ссылку. Ещё поля - на ваше усмотрение.

8.6. Нужно процедурное программирование (ООП замедляет PHP, на наш взгляд). Должны быть комментарии к функциям и ключевым блокам кода. При делении кода на функции нужно предусмотреть возможность дальнейшего расширения – написания модулей к другим движкам.

9 лет назад
parsing8
Киселев 
43 годаРоссия
11 лет в сервисе
Был
9 лет назад
  • Похожие заказы
  • Нашему проекту strongwine.ru требуется программист. Сайт на HOST CMS. Требуется человек который оперативно будет вносить правки, исправления, установку новых модулей и т.д. - сообща с нашим СЕО-программистом. Сайт новый, поэтому на первом этапе работы должно ...

    Закрыт
    8 лет назад
  • Требуется установить cms, прикрутить к ней шаблонный дизайн. CMS аргументированно выбираете вы сами, дизайн выберем вместе. Наполнять сайт не надо. Заливаем на хостинг, проверяем работоспособность. Будущий сайт должен быть похож на le sd vor .ru (без пробелов) - такая ...

    Завершен
    8 лет назад
  • Здравствуйте! Необходим человек, разбирающийся в Modx Evo. Сайт - ekortvl.ru На сайте не корректно отображаются url - стоит переменная ?q= перед каждым урл. Не возможно создать новый ресурс, выдает ошибку - could not get last insert key При попытке копирования ...

    Завершен
    9 лет назад
  • Здравствуйте. на сайте http://krekhovetskyi.net/ под рубриками есть типы: "Аниме", "Мультфильмы", "Фильмы", "Сериалы". нужно добавить еще два - это "Мультсериалы" и "Аниме-сериалы". вставить нужно сразу после "Сериалы" , ...

    Завершен
    9 лет назад
  • Есть макет в html. Требуется установка его на вордпресс. Желательно сегодня. Пишите сроки и стоимость работы. Макет состоит из 1 страницы (адаптивный), для вордпресс нужно предусмотреть наличие колонки справа для второстепенных. Никаких дополнительно скриптов устанавливать не нужно.

    Завершен
    9 лет назад
  • Доброго дня! Есть сайт на wordpress. Вроде проведены работы по оптимизации (минификация, кэш и т.п.). Но что-то не так со скоростью все равно - время ответа от сервера по 2 секунды. Сайт на VPS. Нужно разобраться в ...

    Закрыт
    9 лет назад