Не очень понял, если честно про прикручивание key.
Сейчас у вас $key задается по значению GET-параметра.
Если модифицировать скрипт как я показал - то будет либо по значению GET-параметра, либо по значению куки, т.е. логика установки $key остается как была, меняется лишь источник, откуда берется utm-метка.
По сути скрипт utm-метку сохраняет в куку и может её оттуда же и читать.
<? $key = '000000'; $key2 = '000'; //cookie lifetime $lifetime = 60*60; if (isset($_GET['utm_source']) || isset($_COOKIE['utm_source'])) { if ($_GET['utm_source'] == '1' || (isset($_COOKIE['utm_source']) && $_COOKIE['utm_source'] == '1')) { $key = '11111111'; $key2 = '111444'; setcookie("utm_source", 1, time() + $lifetime); } if ($_GET['utm_source'] == '2' || (isset($_COOKIE['utm_source']) && $_COOKIE['utm_source'] == '2')) { $key = '22222222'; $key2 = '222333'; setcookie("utm_source", 2, time() + $lifetime); } } ?>
вот как-то так.
Врмя жизник куки в переменной $lifetime в секундах.
Так utf же наверно, по два байта на символ? 2х16 + 1 на пробел
Это как? Или это всё равно через js подгружать?
Для подобной фишки нужны две вещи - определение координат пользователя и API картографического сервиса для geolocation - есть что у яндекса (https://tech.yandex.ru/maps/doc/geocoder/desc/concepts/input_params-docpage/) что у гугла подобное.
Собственно тогда всё просто - спросили у бразуера координаты (только пользователь может не разрешить это), спросили у API адрес по этим координатам. Насчёт точности (координат) - это уже вопрос.
при включенном AdBlock скрипт advert.js просто не будет загружен, соответственно переменная noAdBlock не будет определена. Далее по коду проверяется - есть ли такая переменная, если нет - значит файл не был загружен - значит есть AdBlock
Ну PDO тоже надо уметь правильно приготовить, так что теоретически может.
Находят же иногда баги в разном ПО - тот же heartbleed например.
console.log() или отладчик в зубы и вперёд.
Если нет явных ошибок в формулах - то скорее всего где-то числа плюсуются как строки, т.е. 1+1 = 11.
Ну вообще это задача БД выбирать данные и 10 запросов такого типа на страницу - это не страшно, особенно если в базе индексы проставить.
Вы для начала замеряйте сколько в увас по времени разные вариванты занимают. а потом уже отптимизируйте.
Ну и на крайний случай - выбирайте все по общему условию, а сортируйте по отличающемуся уже в php
Понятно, ну я в приницпе написал вам общий принцип решения.
т.е. осталвяем один цикл, на первом проходе выводим deckost и id с mana, на последующих только id с mana