• Фильтрация введеных данных при записи в бд или при выводе?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для начала, фильтр при записи спасает от sql-инъекции.
    Во-вторых, чтение обычно преобладает над записью, так что лучше фильтровать при записи.
    С другой стороны, фильтруя запись в бд, вы лишаетесь первичного формата. И если вы измените фильтр, то данные перекодировать уже не получится.
    Ну и такой момент: если пользователь редактирует свою запись, то ему нужно выдавать именно то, что он ввёл.
    Вывод: частично нужно фильтровать конвертировать при записи, частично фильтровать при выводе, а при редактировании возвращать исходный вариант.
    Ответ написан
    2 комментария
  • Как сделать ограничение на выбор checkbox и пояление текста?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Так как вы заново суммируете все цены в переменной sum,
    то и обнулять её нужно каждый раз.
    А вы обнуляете только один раз в начале скрипта, а не при клике.
    Ответ написан
  • Маршрутизация за белый ip к белому ip?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    То есть вы хотите в каждый пакет прописать маршрут, по которому он будет идти? И промежуточным узлам будет запрещено принимать решения?

    Нет, это невозможно. Не в нашем мире.
    Ответ написан
  • Как последовательно передать данные со страниц методом POST?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    <?php print_r($_POST); ?>
    Ответ написан
    Комментировать
  • Фильтр массива объектов?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ваш код
    var arr = [
      {0: {
        count: 3,
        emergency_count: 2,
        object: {},
        positions: {
          0: {
            position: "A-09-07B-11",
            positionBarcode: "M01500",
            wares: [{
              0: {
                action: null,
                code: "9465",
                data: "2018-03-31T00:00:00",
                name: "Хлопья овс 400г экстра Русский завтрак",
              }
            }]
          },
          1: {
            position: "A-09-07B-11",
            positionBarcode: "M01500",
            wares: [{
              0: {
                action: null,
                code: "187853",
                data: "2018-03-31T00:00:00",
                name: "Мука в/с Алейка 1кг",
              },
            }]
          },
        },
      }},
      {1: {
        count: 3,
        emergency_count: 2,
        object: {},
        positions: {
          0: {
            position: "A-09-07B-11",
            positionBarcode: "M01500",
            wares: [{
              0: {
                action: null,
                code: "127950",
                data: "2018-03-31T00:00:00",
                name: "Паста соево/перцовая Самдянг 500г контейнер",
              }
            }]
          },
          1: {
            position: "A-06-02B-11",
            positionBarcode: "M01007",
            wares: [{
              0: {
                action: null,
                code: "159859",
                data: "2018-03-31T00:00:00",
                name: "Чай Гринфилд Барберри вкус барбарис черн 25пак",
              }
            }]
          },
        },
      }},
      {2: {
        count: 3,
        emergency_count: 2,
        object: {},
        positions: {
          0: {
            position: "A-09-07B-11",
            positionBarcode: "M01500",
            wares: [{
              0: {
                action: null,
                code: "383582",
                data: "2018-03-31T00:00:00",
                name: "Корнишоны маринов 540мл Середина лета",
              },
            }]
          },
          1: {
            position: "A-06-02B-11",
            positionBarcode: "M01007",
            wares: [{
              0: {
                action: null,
                code: "159859",
                data: "2018-03-31T00:00:00",
                name: "Чай Гринфилд Барберри вкус барбарис черн 25пак",
              }
            }]
          },
        }
        
      }},
    ];
    Решение
    var code = "159859";
    arr.find(
     e=>Object.values(e).find(
      e=>Object.values(e.positions).find(
       e=>(p=e.position,e.wares.find(
        e=>Object.values(e).find(
         e=>e.code==code?n=e.name:0))))));
    alert(n && 'name = ' + n + "\nposition = " + p || 'Not found');

    А чего сложного? Почему вы сами не можете пройтись по структуре?
    Ответ написан
    3 комментария
  • Что содержится в торрент файле?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Скачиваете uTorrent.
    меню Файл -> Создать новый торрент.

    А вообще формат файла легко гуглится.
    Ответ написан
    9 комментариев
  • Проблема со скобками)))))))?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Я не специалист по Java, но ответ - рекурсия.
    Можно и без неё, с эмуляцией стека в массиве, но это по сути то же самое.
    Это решает проблему огромной вложенности одинаковых циклов.

    Также очень советую изучить формат RPN - он вам значительно упростит как перебор вариантов, так и вычисления. Например, ваш ответ (8-4) * (7-1) будет выглядеть, как массив 8, 4, -, 7, 1, -, *. Скобки исчезают. Задача сводится к перестановке 4 цифр в 7 позициях и перебору операций в оставшихся. Не все варианты валидны, но как именно оптимизировать, и надо ли оно вам или просто чтоб работало - решайте уже сами.
    Ответ написан
    Комментировать
  • У меня копируют контент, куда жаловаться?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Первое, что не мешало бы сделать - это банальный exif у каждой картинки. Если их бездумно копируют, то сразу можно прикрыть.

    Второе, более мощное - это не столько водные знаки, сколько тематические изображения, где виден ваш логотип и т.д. Например, ботинки может держать сотрудник в фирменной майке с логотипом и в стиле дизайна сайта. Мало того, что такой "водяной знак" трудно стереть, так ещё и лицо сотрудника будет таким "знаком", его потом можно вызвать в суд в качестве свидетеля или хотя бы показать доки, что он у вас работает.

    Третий интересный момент - это сложное программирование. Например, товар в 3D (на канвасе), который можно посмотреть со всех сторон. Код можно обфусцировать, положить в него кучу закладок (пусть воруют, им же хуже будет) и много чего еще. Теоретически и это можно украсть и очистить, но вору придется приложить значительные усилия, зачастую может быть проще написать такое же с нуля, а это уже придется выложить средства из своего кармана.
    Ответ написан
    Комментировать
  • Чем заменить eval для простых выражений?

    dollar
    @dollar Автор вопроса
    Делай добро и бросай его в воду.
    Сделал решение на скорую руку - eval_lite.js.
    Это тихий ужас, но работает.
    Ответ написан
    Комментировать
  • Есть ли расширения для Firefox, для скрытия блоков с политикой cookie?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Боюсь, что это сложно, потому что нет стандартов кода для таких блоков. Поэтому каждый сайт делает по-своему. И нет критериев для определения таких блоков на сайте.

    P.S. Сайт из вашего примера wienerberger.ru посмотрел. Половина функционала не работает без JS. Следовательно, плохой сайт.
    Ответ написан
  • Можно ли раскрыть скрытые данные WHOIS?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Бывший или действующий сотрудник регистратора украл или всё ещё имеет доступ к базе данных. Ну или как-то ещё, типа есть свой адвокат, который пишет запросы. В общем, скукота. Может и развод, конечно, но это надо вглядываться/вчитываться.
    Ответ написан
    Комментировать
  • Кто знает почему заблокирован https://html.spec.whatwg.org?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Расширение для хрома выдало моментальный ответ:
    5c97868a63f7a598852162.png
    нюанс
    Правда, такой отчёт в современных браузерах расширение может дать, только если доступ к сайту всё же есть.
    Ответ написан
    2 комментария
  • Можно ли автоматизировать чистку сайта от ненужных файлов?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Конечно, можно.
    Такой простой скрипт можно написать очень быстро.
    Больше времени уйдёт на то, чтобы понять, как его запустить.
    (имеется в виду понять автору вопроса, судя по вопросу)
    Ответ написан
    Комментировать
  • Как определить верхнерегистровый аналог символа?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно иметь дело с кодами символов. Английские, русские, и не забудьте про выскочку "Ё". Почти все символы в одном алфавите имеют одно и то же смещение по коду с противоположным регистром. Думаю, идея понятна.
    Ответ написан
    1 комментарий
  • Можно как-то создать свойство объекту подобным образом obj[i][j]?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    obj[i] = {}; // Или []
    obj[i][j] = arr[i][j];

    В одну строчку менее красиво, так что не рекомендую:
    (obj[i]={})[j] = arr[i][j];

    А вообще зависит от того, хотите ли вы копию или ссылку. Ещё вариант:
    obj[i] = arr[i]; //Со всеми прочими свойствами, которые рядом
    Ответ написан
    Комментировать
  • Как начать программировать, зная теорию?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Начните с простых задач.
    Ну, не "Hello, world", но что-то не слишком сложное.
    Нужно почувствовать, что (императивное) программирование - это просто последовательность инструкций. Ну, это классика, так что беру за основу. То есть это как бы переход от алфавита к чтению целыми словами.

    Дальше точно так же нужно освоить условный оператор (if-else) и циклы. Их тоже нужно научиться чувствовать. А точнее переводить русские формулировки со словами "если", "повторять", "пока", "до тех пор" в условия и циклы. Это уже как бы переходим от слов к целым предложениям. И всё равно это уровень маленьких программ.

    А дальше самое интересное - декомпозиция. Сложную задачу нужно разбить на маленькие, реализация каждой из которых занимает (желательно) не больше одного экрана текста. Это как бы переход от предложений к целым абзацам. Вы же умеете разбивать свою сложную мысль на абзацы? (По вашему вопросу не скажешь....)

    Вот из таких "абзацев" и состоит вся ваша повесть. Она может быть на несколько страниц, а может быть уровня "Война и мир".
    Ответ написан
    1 комментарий
  • Как правильно экранировать json в javascript?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В общем, ваша ошибка:
    Uncaught SyntaxError: Unexpected token ' in JSON at position 1

    Прямо говорит о том, что на позиции 1 встретилась одинарная кавычка.
    1 - это вторая позиция в строке (0 -первая).
    Например, строка может быть такой:
    {'xxx':123}
    Такая строка выдаст похожую ошибку, потому что второй символ (одинарная кавычка) - не валидный.
    Ответ написан
  • Как запустить данный JS скрипт через 3 секунды?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Спасибо за скрипт!
    Думаю, все знают, что с ним делать.

    А по теме вопроса:
    setTimeout(adb_checker, 3000, {
    	url: '<span></span>',
    	redirect: false,
    	warning: {
    		text: '<p>Отключите AdBlock <br> для данного сайта.</p>',
    		button: '<span></span>'
    	}
    });
    Ответ написан
    Комментировать
  • Самый быстрый алгоритм для поиска самого большого значения в неотсортированном массиве?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    в неотсортированном массиве

    O(n)
    То есть полный перебор.

    Но он не используется в продкашене

    Вам нужен самый быстрый алгоритм или соответствие (мнимому) продакшену?
    Ответ написан
    2 комментария
  • Почему ноутбук с закрытой крышкой думает дольше?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Браузеры - не активная вкладка
    ...........setInterval     requestAnimationFrame
    Chrome
    9-         not affected    not supported
    10         not affected    paused
    11+        >=1000ms        paused
    
    Firefox
    3-         not affected    not supported
    4          not affected    1s
    5+         >=1000ms        2ns (n = number of frames since inactivity)
    
    IE
    9-         not affected    not supported
    10+        not affected    paused
    
    Edge
    13-        not affected    paused
    14+        >=1000ms        paused
    
    Safari
    5-         not affected    not supported
    6          not affected    paused
    7+         >=1000ms        paused
    
    Opera
    12-        not affected    not supported
    15+        >=1000ms        paused

    Подберите себе старенький браузер. :)
    Ответ написан
    Комментировать