• Определение IP-адреса. Какой выбрать?

    private function getUserIp(){
            if (!empty($_SERVER['HTTP_X_REAL_IP']))   //check ip from share internet
            {
                $ip=$_SERVER['HTTP_X_REAL_IP'];
            }
            elseif (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
            {
                $ip=$_SERVER['HTTP_CLIENT_IP'];
            }
            elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
            {
                $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
            }
            else
            {
                $ip=$_SERVER['REMOTE_ADDR'];
            }
            return $ip;
        }
    Ответ написан
    Комментировать
  • Определение IP-адреса. Какой выбрать?

    Melkij
    @Melkij
    PostgreSQL DBA
    Какой IP посетителя считать верным?

    Оба.

    Есть ли единый правильный метод определения IP пользователя?

    Логировать всё.

    В общем случае - писать REMOTE_ADDR. Свои веб-сервера настраивать на выдачу REMOTE_ADDR в тот адрес, который открыл соединение до фронтенда.
    Ответ написан
    Комментировать
  • Определение IP-адреса. Какой выбрать?

    nalomenko
    @nalomenko
    Руководитель отдела разработок в студии «Lava»
    Эта статья Вам поможет
    Ответ написан
    Комментировать
  • Определение IP-адреса. Какой выбрать?

    xmoonlight
    @xmoonlight Автор вопроса
    https://sitecoder.blogspot.com
    Только так: $_SERVER['REMOTE_ADDR'];
    т.к. все остальное - подделывается :(
    Ответ написан
    Комментировать
  • Как не выводить пустой get в url строку?

    allard
    @allard
    Серийный программист
    Как вариант при отправке формы формируй url, точнее get самостоятельно с помощью js.
    Пустые переменные в get потому-что при сабмите формы все поля находящиеся в форме формируют запрос, не зависимо от того пустое поле или скрытое, оно все равно попадет в get.

    Просто отловите отправку формы тем же jquery, переберите все поля внутри формы в цикле и из не пустых полей сформируйте запрос (url). А потом просто сделайте редирект на этот url (document.location.href = url).

    Или как вариант удалить jsом перед отправкой формы все пустые поля, эффект будет тот который вы хотите.
    Ответ написан
    Комментировать
  • Как не выводить пустой get в url строку?

    if (!empty($_GET)) {
                $new_get = array_filter($_GET);
                if (count($new_get) < count($_GET)) {
                    $request_uri = parse_url('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], PHP_URL_PATH);
                    header('Location: ' . $request_uri . '?' . http_build_query($new_get));
                    exit;
                }
            }

    Где-нибудь в самом начале страницы или точки входа вставьте, будет чистить любые пустые GET-параметры, и не надо в каждой форме что-то мудрить.
    Ответ написан
    1 комментарий
  • Возможно ли создать новый тикет в GLPI при помощи rest api на php?

    Я сделал по описанию в https://habr.com/ru/post/442402/, у меня работает.
    Ответ написан
    Комментировать
  • Есть ли файловый аналог .htaccess для nginx и lighttpd?

    opium
    @opium
    Просто люблю качественно работать
    нету аналогов
    litespeed поддерживает .htaccess от апачи но он платный
    Ответ написан
    Комментировать
  • Есть ли файловый аналог .htaccess для nginx и lighttpd?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    У нас разработка идет на apache а продакшен / дев сервера на nginx.
    В итоге собрали мини скрипт для автоматизации конвертации:

    В конфиге nginx сделали инклуд отдельного файла, в который пишем из скрипта обновленный код.
    У нас не используются специфичные инструкции, поэтому весь код условно
    $htaccess = file('.htaccess');
    foreach ($htaccess as $line)
    {
    	if (substr($line,0,11) == 'RewriteRule')
    	{
    		$line = str_replace('RewriteRule ^','rewrite ^/',$line);
    		$line = str_replace('[QSA,L]','last;',$line);
    		echo $line, "\n";
    	}
    }

    Ну и делаем nginx reload после этого

    PS
    В целом у нас это все выглядит так:
    Конфиг nginx для домена
    server {
      server_name  mysite.com;
      set $site_root '/www/mysite.com';
      ...
      include /etc/nginx/conf.d/mysite.com-rewrite.inc;
      ...
    }

    Есть самописная система деплоя, когда нужно сделать деплой просто запускает условно
    php _redirect_maker.php > /etc/nginx/conf.d/mysite.com-rewrite.inc
    service nginx reload
    Ответ написан
    9 комментариев
  • Есть ли файловый аналог .htaccess для nginx и lighttpd?

    galynsky
    @galynsky
    На Nginx это все делается через nginx.conf. Все правила прописываются там. Если у вас есть .htaccess то вы можете инструкции Apache конвертировать в Nginx например с помощью данного сервиса. Все решаемо.
    Ответ написан
    2 комментария
  • Как скачать видео, начинающееся с blob?

    @bulatei
    <a href="blob:https%3A//player.vimeo.com/8b1acfe1-d667-4522-beb7-60f70f01bc9a" download="filename">Скачать</a>


    создайте на той же странице такой элемент через инструменты разработчика и нажмите на эту ссылку, атрибут download отменяет переход по ссылке и выдает файл на скачивание, а его свойство, то есть 'filename' это имя сохраняемого файла
    Ответ написан
    5 комментариев
  • Как скачать видео, начинающееся с blob?

    @TheSima
    Гуглится именно эта страница, но нормального ответа так и нет(не у всех Chrome), решил дополнить от себя.
    Решение(отсюда) для видео HLS такое(для других случаев пока что не нашёл решение):
    1) Определить m3u8 список для того видео которое Вы хотите скачать. Обычно это делается так:
    - Включаем режим разработчика в браузере и открываем(в этом режиме) вкладку сеть.
    - Открываем страницу с видео
    - В появившихся строчках ищем "что-то".m3u8 Например:
    http://example.com/video_url.m3u8
    Это и будет нужная ссылка на "список"
    2) Скачать ffmpeg и скачать с его помощью видео:
    - Под Windows можно здесь(ссылка устарела) здесьскачать из Assets файл ...-full_build.zip или 7z по вкусу, распаковать. Открыть папку bin, зажать Shift и кликнуть правой кнопкой в пустое место в окне папки bin, нажать "Открыть окно команд".
    Под линуксы я думаю, ребята разберуться ;)
    - И ввести следующую команду, заменив ссылку из примера на ссылку из пункта 1:
    ffmpeg -i "http://example.com/video_url.m3u8" -c copy -bsf:a aac_adtstoasc "output.mp4"

    output.mp4 - будет ваше видео) имя файла в команде можно менять ;)
    Ответ написан
    2 комментария
  • Как скачать видео, начинающееся с blob?

    @vk4
    В 2022 году ответ на этот вопрос такой: плагин HLS Downloader
    В Chrome не пробовал.
    Для Mozilla Firefox ссылка такая: https://addons.mozilla.org/ru/firefox/addon/hls-do... , я его проверял, работает без перекодирования, сохраняет поток в .TS файл, позволяет выбирать качество. Нельзя сказать, что плагин идеален, но сойдет. К примеру, плагин VideoDownload Helper требует установки кодека, но кодирует с ватермаркой, это все лишнее, кодировать можно и специальным софтом без плагина.
    Ответ написан
    Комментировать
  • Как скачать видео, начинающееся с blob?

    @esenin242
    Октябрь 2022
    Самое удобное эвер для скачивания blob видео - расширение Fetch
    https://chrome.google.com/webstore/detail/fetchvvi...
    Ответ написан
    2 комментария
  • Как работает электронная почта?

    @mafusailmagoga
    Примерно так

    1. Пишешь письмо.
    2. Оно кладется в очередь к MTA mail.ru
    3. Уезжает, проезжает через ряд MTA, доходит до конечного того, что гуглевый
    4. Кладется в базу данных в Гугле

    Усе.

    MTU фактически нет у mail.ru и gmail
    Там довольно навороченные системы для хранения писем, для поиска - полноценные базы данных.
    Ответ написан
    2 комментария
  • Как работает электронная почта?

    Это неправильная схема, соответственно выше к ней неправильные комментарии.

    MTA (mail transfer agent) используется для обмена почтой между серверами, MDA (mail delivery agent) для локальной доставки письма в почтовый ящик, и MTA и MDA работают на почтовых серверах. MTA и MDA могут быть частями одной почтовой программы (большая часть MTA в той или иной степени поддерживают локальную доставку), а могут быть разными приложениями. Но к компьютеру ползователя ни MTA ни MDA не имеют отношения, они работают на почтовом сервере. MUA используется для получения письма из почтового ящика, создания письма, передачи письма MTA.
    Схема такая:
    1. MUA формирует письмо. В качестве MUA может выступать почтовая программа или веб-интерфейс.
    2. MUA передает письмо MTA отправителя (relay), в случае почтовой программы через протокол SMTP Submission (SMTP с авторизацией), в случае веб-интерфейса обычно напрямую.
    3. MTA отправителя (relay) определяет MTA получателя (mail exchanger) через MX или A записи DNS.
    4. MTA отправителя (relay) передает письмо на MTA получателя (mail exchanger) по протоколу SMTP (без аутентификации)
    5. MTA получателя либо передает письмо MDA для локальной доставки в почтовый ящик (обычный путь доставки) либо передает письмо другому MTA, например если в ящике установлено перенаправление.
    6. MDA кладет письмо в ящик получателя
    7. MUA получателя получает письмо из ящика через протоколы POP3, IMAP4 или веб-интерфейс
    Ответ написан
    2 комментария
  • Как работает электронная почта?

    Возьмём двух почтовых провайдеров: mail.ru и gmail.com.
    На них зарегистрировались соответственно два пользователя: А@mail.ru и Б@gmail.com
    Чтобы А успешно оправил письмо получателю Б, а тот его принял, происходит следующее.

    Схема довольно проста:

    Отправитель А@mail.ru посылает письмо получателю Б@gmail.com

    Сервер mail.ru (MTA), получив задание с помощью почтового посредника MUA (клиентская почтовая программа (The Bat, Mozilla Thunderbird)) по протоколу SMTP, ищет почтовый сервер gmail.com (MTA) по доменной части адреса (в нашем случае gmail.com) через DNS. SMTP сервер mail.ru ищет в DNS для домена gmail.com запись MX (mail exchange), она и указывает на MTA сервер получателя Б@gmail.com (в простом случае).
    Далее MTA mail.ru связывается с MTA gmail.com по протоколу SMTP, происходит ряд проверок со стороны обоих серверов, если все успешно, то письмо передается в почтовую очередь сервера gmail.com.
    Затем MTA gmail.com доставляет письмо на сервер входящей почты (называющийся MDA, то есть агент доставки электронной почты), который хранит письмо в почтовом ящике пользователя Б@gmail.com в ожидании его приема пользователем. Далее с помощью MUA (клиентская почтовая программа (The Bat, Mozilla Thunderbird)) пользователь Б@gmail.com извлекает из MDA письмо по протоколу POP или IMAP.
    В качестве MUA может выступать веб-интерфейс, использующийся для взаимодействия с сервером входящей почты (MDA) и сервером исходящей почты (MTA).
    Ответ написан
    1 комментарий
  • В Гугл хром как настроить mailto:?

    Настройки/показать дополнительные настройки
    Личные данные/настройки контента
    Обработчики/настроить обработчики
    Ответ написан
    Комментировать