Задать вопрос
  • Можно ли достать инф с потока audio на клиенте?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Тогда и я напишу сюда)))
    https://github.com/xmoonlight/Icecast-Song-Info-php
    Ответ написан
    Комментировать
  • Какой классический формат приема и обработки данных с формы?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Проверка всех входных и выходных данных - только Regexp по "белому" списку.
    Иначе говоря - принимаем только ожидаемые значения.
    preg_match();
    Используем те же правила проверки (js+regex) на клиентской стороне сайта (в браузере) перед отправкой данных на сервер.

    2. Закрываем соединение с базой только тогда, когда оно уже более не нужно для текущего исполнения PHP-скрипта до конца его работы. обычно, соединение к базе закрывается перед началом формирования страницы по шаблону. Можно закрывать ещё точнее: после завершения работы последнего запроса из последнего модуля списка всех модулей, участвующих в работе с данными в базе.

    И на последок маленькая, но ОЧЕНЬ! полезная функция собственного производства:
    function validfilter($value,$regexp,$flags='usi') {
      if (preg_match('/'.$regexp.'/'.$flags, $value,$result) && $result[0]===$value) 
         return $value;  
      else return false;
    }
    Ответ написан
    Комментировать
  • Пройдет ли бан?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Сработал поведенческий фильтр.
    По-идее, правильно и за дело!
    Зачем было провоцировать робота и мучить сервер запросами?
    Ваши мысли:
    Серв - тупая железка! Рук-ног нету и работает круглые сутки. Пока админы спят, ща солью весь сайт, а то у них есть вона скока, пусть и у меня стока бует!
    А железка, а чё она сделает мне то? У неё ж рук-ног же нету, или ещё скажи забанит за скачку?!)))) Как она поймёт что именно я сливаю-то? Может я страницы просто смотрю. Да и железка же - не админ! А админы - спят!)))
    Нечего мне бояться и пора уже сливать контент, пока админы не просекли!
    На первый раз сутки обычно, но потом - смотрите сами.
    Ответ написан
    Комментировать
  • Есть такая библиотека для определения аудитории?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Матрицей нужно делать: ID юзеров, ID групп - это общая сводная матрица.
    Затем, делаем выборку по этой матрице нужных пользователей или групп по заданному критерию отбора - это матрица критерия (тематика групп, возраст, и т.д.).

    Дальше, мы можем сравнить количественный процент аудитории этого критерия на общем фоне через банальную формулу процентной калькуляции.

    Также, можно сравнивать 2 или более различных критерия отбора между собой.
    Ответ написан
    Комментировать
  • Фоновые задачи в PHP без клиента, альтернатива cron?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ написан
    Комментировать
  • Почему может слетать верстка при ресайзе?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Потому, что где-то "костыли" выправления "кривой" вёрстки после загрузки страницы в js.
    Отключите вообще js и увидите реалии)
    Ответ написан
    2 комментария
  • Кто каким образом документирует локальную сеть?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Да HTML обычный.
    Схема: в SVG, по клику на объекте - инфа.
    Проверка доступности хостов/портов: через коды статуса аякс-запросом.
    Нужно более круче: берём webkit и вперёд допиливаем.
    Ответ написан
  • Как отдать интернет по LAN с ПК?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    На винде: правый клик по соединению Wi-Fi, свойства, "разрешить другим ПК подключаться к интернету через это соединение".
    В итоге, поднимается NAT и всё работает.
    Ответ написан
    2 комментария
  • Как эффективно построить инфраструктуру для веб сервиса с периодическим "хайлодом"?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Во время HL, всем "не юзерам"/гостям/читателям (кому не нужно изменять данные на сервере) - отдавайте кэшированные страницы, юзерам - как обычно.
    Ответ написан
    Комментировать
  • Существуют ли программы или расширения для организации личного дашборда, информационного табло из разношерстных сервисов?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вот, как раз для этих целей существует библиотека, разработанная мной.
    includeHTML
    • pure js
    • загрузка по HTML-тегу или через js в любой блок
    • система callback-ов
    • бесконечная автоматическая подгрузка вложенных в друг друга блоков
    • синхрон и асинхрон при выполнении загрузки
    • корректная работа с протоколом file:/// (т.е. можно с диска/флешки html-ку запустить и она будет работать)

    Простое описание: include() (аналог функции в PHP) на javascript.

    Создаём сетку разметки так, как необходимо и по клику вызываем загрузку новых информационных блоков в выбранную ячейку сетки разметки (layout) или сразу целыми блоками заменяем.
    Есть обработчик окончания загрузки блока: туда помещаем вызов для запроса данных.
    Сейчас - делаю загрузку различных типов файлов с реестром DOM-блоков, сохраняя простоту использования и понимания библиотеки.
    Буду благодарен за форк и лайк на гите!

    c43111450e404431bd55df71b237901c.jpg
    https://jsfiddle.net/no08Lj0w/2/


    PS: Случайно обнаружил, что подобная разметка сетки введена в AdSense от Google!
    Ответ написан
    32 комментария
  • Как испортить кровь копипастерам?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Здесь нужно только графиком объяснять (принцип тот же, что и при шифровании пароля).
    Попробую на словах:
    1. Есть время раскрутки вашего сервиса и количество посетителей.
    2. Есть процент публичной информации (для SEO, для привлечения внимания и поднятия интереса) и информации по платной подписке.

    Задача: нужно поддерживать такие условия, чтобы человек, имеющий платную подписку не смог с помощью полученной информации на вашем сайте, создать свой сервис, более популярный, чем Ваш.
    Например, можно отслеживать кол-во запросов пользователей с платных аккаунтов в сутки и блокировать аккаунты с очень частыми последовательными запросами, т.е. роботов.
    Или брать по пол-копейки за превышение лимитов запросов в сутки (кстати, так делают поисковые гиганты на своих сервисах) и т.д.
    Ответ написан
    Комментировать
  • Как правильно писать клиентский JS для многостраничный сайтов?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я это делаю на уровне PHP-фреймворка:
    1. Изначально - всегда добавляются только те, которые присутствуют в шаблоне на каждой странице.
    2. Когда я задействую нужный мне на странице блоковый визуальный модуль (PHP+JS), перед добавлением JS-скрипта в секцию head происходит проверка его существования в ней: возможно другие подобные модули уже запросили этот файл стилей, функцию или библиотеку.
    3. На выходе: ТОЛЬКО НУЖНЫЕ ДЛЯ ЭТОЙ СТРАНИЦЫ js-скрипты, css и прочее, в соответствии с добавленными визуальными модулями, необходимость использования которых зависит от того, что должно отображаться на странице и за этим следит фреймворк.

    Конкретно, если это делать на клиенте через JS - нужен механизм на JSON-файле с "деревом" зависимостей объектов, обрабатываемых на страницах (URL-ах):
    [URL1] => [дерево объектов, с которыми работает js]
    ...........
    [URLN] => [дерево объектов, с которыми работает js]
    Ответ написан
    Комментировать
  • Как зашифровать и расшифровать строку с солью?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Упрощаем для модераторов понимание символа ^ :)
    define("SALT","gfklhjr09j5FDGfkj49llkrjltreGuxLWQtKweKEMV4");
    define("PASSWORD","ejhjkerht9348hhjkehtkjer");
    
    function encode($String, $Password,$Salt) {
        $StrLen = strlen($String);
        $Seq = $Password;
        $Gamma = '';
        while (strlen($Gamma)<$StrLen)
        {
            $Seq = pack("H*",sha1($Gamma.$Seq.$Salt)); 
            $Gamma.=substr($Seq,0,8);
        }
        return $String^$Gamma;
    }
    
    $s='this is test string';
    $enc=encode($s,PASSWORD,SALT);
    $dec=encode($enc,PASSWORD,SALT);
    
    echo 'Original string: '.$s.'<br>';
    echo 'Encrypted string: '.base64_encode($enc).'<br>';
    echo 'Decrypted string: '.$dec.'<br>';
    Ответ написан
    2 комментария
  • Как защитить свое api?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Проверяйте обратную DNS-запись хоста (сервер с доменным именем в роли клиента) при процессе авторизации: что запрос пришёл от одного из ожидаемых серверов.
    Если такое "API" идёт по схеме: сервер1 <=> клиент <=> сервер2, тогда - никак.
    Ответ написан
    Комментировать
  • Какую выбрать CMS на PHP?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    CMS Joomla! + плагины.
    Есть вставка любого визуального модуля внутрь материала через тег {} "из коробки".
    Для различных форм для пользователей сайта и админов, есть такой плагин Chronoforms (start guide много красивых картинок), который позволяет создавать различные формы, которые потом можно легко вставить в любой материал (и, конечно же, в любое место на странице).
    Ответ написан
  • Кто может расписать все условия детально?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Здесь нет преобразований.
    Это называется: "приведение типов при операции сравнения".
    Любой непечатаемый символ, пустой набор или строка с единственным нулём - всегда равны 0, но не равны между собой.
    Вкратце, схема предупреждает: никогда не сравнивайте нестрогой проверкой "==" что-либо с нулём. Лучше всегда проверять через "===".
    771622eae9cb4319b31b219bb552aa7a.jpg
    Ответ написан
  • Инструмент для создания анимированных блок схем?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    С помощью javascript.
    Список js-либ для создания игр: тут
    Список js-либ для создания диаграмм: тут
    Ответ написан
    Комментировать
  • Как изменить внешний вид сайта на своем компьютере?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Ставите это расширение для хрома. (аналог Greasemonkey)
    2. Создаёте скрипт только для этого (нужного Вам) сайта (там - фильтр: на каких доменах скрипт будет активен)
    3. Находите нужный объект и прописываете на js в созданном скрипте: что необходимо с ним делать.
    Profit!
    Ответ написан
    Комментировать
  • Какое событие отвечает за повторное выполнение функции при зажатии?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. (eventbutton, если с кнопкой +) mousemove
    Проверяем так:
    [нажата нужная кнопка мыши] И [есть перемещение] => [исполняем секцию кода]
    2. Возможно, что-то из списка по drag-событиям: тут
    Несколько событий работают параллельно. Зависит от кода.
    Ответ написан
    3 комментария