Задать вопрос
  • Сайт не может обработать ошибка 500 php?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Возможность коннекта к базе данных тоже нужно отслеживать:
    $link = mysqli_connect($host, $user, $pass, $name) or die("Can't connect to MySQL!");
    Ответ написан
  • Атака на http сервер Apache, Постоянные запросы с IP из сети, Как избавиться?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Судя по приведённым логам, ваш HTTP-сервер считает, что абсолютно все-все-все запросы предназачены ему. При этом он не отвечает 404-ой ошибкой на совершенно чужие имена доменов (например nanqiang.vip и httpbin.org). То есть у вас HTTP-сервер настроен в режиме "default server", когда запрос с абсолютно любым доменным именем считается приемлемым, и обрабатывается штатно (читаются файлы, генерируется содержимое, вся эта нагрузка на CPU).

    Вам нужно настроить Apache на одно-два-три и т.д. конкретных доменных имени, что бы Apache полноценно обслуживал только их. А на все прочие доменные имена он будет мгновенно отвечать ошибкой 404.

    Конечно это не избавить от таких спамеров, но так хотя-бы сервер будет настроен более правильно (будет меньше нагрузка на CPU), а спамеры будут получать мгновенный отлуп в виде ошибки.

    P.S. Вполне возможно на вашем IP-адресе (очевидно на 80-ом порту) раньше работал proxy сервер. И те компьютеры в сети Интернет, которые были настроены на proxy на этом IP-адресе, до сих пор пытаются им пользоваться как proxy сервером. Правда полноценного хождения по WEB-сайтам через ваш сервер у них уже не получается, но они все равно пытаются (настройку пока не отменили). Остается терпеть... Или сменить IP-адрес. Или перейти на 443-ий порт.
    Ответ написан
    Комментировать
  • Почему перестает работать DNS?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    На 192.168.122.2 видимо нет DNS-а? Тогда после скрипта сделайте команды:
    iptables -I FORWARD -i enp2s0 -s 192.168.122.2,188.242.0.0/16 -p udp --dport 53 -j ACCEPT
    iptables -I FORWARD -i enp2s0 -s 192.168.122.2,188.242.0.0/16 -p tcp --dport 53 -j ACCEPT


    Если сработает и нужно вставить эти команды в скрипт - поменяйте оба "-I FORWARD" на "-A FORWARD".

    P.S. Или удалите из скрипта строки с "--dport 53".
    Ответ написан
  • Как удалить до определенного символа и после с помощью регулярного выражения в php?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    $link = "<script src=\"https://yandex.ru/path\">";
    if (preg_match("/<script[^>]*? src=\"([^\">]+)\"[^>]*?>/si", $link, $matches))
    {
        echo("Link: ".$matches[1]."\n");
    }
    Ответ написан
    Комментировать
  • PHP ругается на ошибку в Curl, куда копать?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    $destiation_dir = realpath($_FILES['file']['tmp_name']);
    Ответ написан
    2 комментария
  • Как сделать MySql выборку из несколькиз таблиц?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    SELECT * FROM Resources AS Models
    LEFT JOIN Resources AS Designs ON (Designs.parent_id = Models.id AND Designs.template_id = id шаблона дизайна модели)
    LEFT JOIN Resources AS Batches ON (Batches.parent_id = Designs.id AND Batches.template_id = id шаблона серии дизайна)
    WHERE Models.parent_id IS NULL
    AND Designs.id IS NOT NULL
    AND Batches.id IS NOT NULL


    Теперь приклеивайте к этому запросу JOIN-ы из переменных.
    Ответ написан
  • Будет ли правильный результат Date.now(), если у пользователя установлена некорректная дата и время?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Некорректный вопрос. Потому что не описано, КАКОЕ ИМЕННО время считается некорректным. На планете Земля имеется 24 часовых пояса, в каждом время отличается, и везде оно будет совершенно корректно в пределах своего часового пояса. Или имеется ввиду другой день недели, или другой месяц, или даже другой год? Так даже в этом случае число будет корректным (цифра - она и есть цифра), просто оно не будет соответствовать реальному времени в реальном часовом поясе.

    P.S. А вы собираетесь полагаться на это число как на идеально правильное и точное?
    Ответ написан
    Комментировать
  • Локальный адрес ISS - как создать?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    На каждом компьютере с Windows дописываете в файл C:\Windows\system32\drivers\etc\hosts строку
    11.22.33.44 baza.site-name.ru
    соответственно поменяв IP-адрес на адрес вашего сервера, а site-name.ru на реальное имя вашего сайта.

    И не забудьте в IIS (он именно так называется) тоже прописать ваше имя сайта, что бы IIS (повторюсь, он именно так называется) знал, что baza.site-name.ru находится у него, в такой-то директории.

    Это самый короткий путь, без настроек собственного DNS-а.
    Ответ написан
  • Как сделать отправку запроса данных с двух форм?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну хотя-бы так:
    if (!empty($_POST['name']) AND !empty($_POST['message']))
    {
        $send = ....;
        header("Location: /");
    }
    else if (!empty($_POST['desc']) AND !empty($_POST['file']))
    {
        $send2 = ....;
    }
    Ответ написан
    Комментировать
  • Remote side sent disconnect message type 2 protocol error как исправить?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Видимо нужно обновить PUTTY из-за этого бага.
    Ответ написан
    Комментировать
  • Как в LIKE настроить границу поиска по шаблону?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    `f` LIKE '3 %' OR `f` LIKE '% 3 %' OR `f` LIKE '% 3'
    Ответ написан
    Комментировать
  • Как понять рекурсию в коде ниже?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Первый вопрос: потому что срабатывает условие n <= 0, и возвращается 0.

    Второй вопрос: потому что число 2 в массиве находится в нулевом (1 - 1 = #0) элементе массива, именно оно суммируется с финальным 0, и эта сумма возвращается.

    Третий вопрос: получается стартовый элемент 3 - 1 = #2, значит суммируются числа 4 + 3 + 2 + 0 = 9, потому что именно число 4 находится во #2-ом элементе массива.
    Ответ написан
    Комментировать
  • Почему не выполняется условие в JavaScript?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Так напишите console.log(result == "username-error");, и увидите результат этой проверки. И лучше делать console.dir(result);, тогда будет видна настоящая структура result, может там вообще массив сидит...
    Ответ написан
    Комментировать
  • Почему ошибка 520 Cloudflare при обращении по http, хотя по правилам Nginx настроен редирект на https?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    У вас прописан только перманентный редирект всех HTTP запросов на HTTPS адрес сайта. 520-ая ошибка указывает на непонятный ответ вашего сервера Cloudflare-вскому серверу, возможно как раз из-за самоподписанного (неудостоверенного) сертификата. Настройте логи Nginx-а, и изучайте, что он там пишет... Сертификат можно у Let's Encrypt бесплатно взять.
    Ответ написан
    Комментировать
  • Как скрыть phpMyAdmin со всех сайтов кроме главного хоста на Ubuntu (apache + nginx)?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    У вас все server{} указывают на одну общую директорию, в которой ещё и phpMyAdmin валяется? Тогда сделайте хотя-бы
    location /phpMyAdmin/ {
    if ($host != "1.2.3.4") {
    return 444;
    }
    allow 1.2.3.4;
    allow 55.66.77.88;
    deny all;
    }

    И так - в каждом server{...}.
    Ответ написан
    Комментировать
  • Почему интернет провайдеры не могут мне дать "белый" + "динамический" IP?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Купите пулл белых адресов, и самостоятельно между ними скачите. А если хотите бюджетненько - используйте прокси и/или TOR. И белый адрес нужен не для доступа наружу, а наоборот.

    Ломать уже настроенную инфраструктуру - это все равно что в 9-тиэтажке по просьбе собственника квартиры с 3-го этажа переделать ему потолки на 340см вместо 275см. Так - доходчиво?

    У любого провайдера есть белые IP, но у кого-то их всего 32, а у кого-то - 65535. Вопрос - кто может их раздавать? И у кого предусмотренна возможность раздавания? А она окупится? А резервировать список адресов монопольно под одного клиента - тоже окупится? Монопольно - потому что другие клиенты такого тупого скакания по свободным IP - не заказывали.

    P.S. Если блокируют ваш IP - может стоит задуматься над противоправностью ваших действий с этого IP? В правоохранительные органы ещё не вызывали?
    Ответ написан
    5 комментариев
  • Почему не работает условие if?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Потому что условие с ошибкой. Должно быть:
    <?if ($geturl != '/' && $geturl != '/page/'):?>
    Ответ написан
    Комментировать
  • Почему скрипт php не завершает свою работу после ухода пользователя?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Логично же, что AJAX-функция во время своей работы блокирует переход по любым ссылкам. Пока AJAX-функция переходы не разблокирует (получив данные) - переходов и не будет. Ищите не в PHP, а в AJAX-функции в браузере.
    Ответ написан
    Комментировать
  • Как называется метод/технология, когда сайт развернут на одном домене, а доступен на другом?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Это и есть Alias домена в HTTP-сервере.
    Просто в настройках прописывается не только основной домен на ispring, но и домен клиента. Когда HTTP-сервер получает HTTP-запрос, он ищет в запросе доменное имя. Если найденное доменное имя есть в конфигах - сервер понимает, из какой директории (приписанной к доменому имени) нужно брать файлы. Доменов можно приписать хоть 100500, все они будут работать с файлами в одной и той же директории.

    Можно работаь под любым доменным именем, а можно проверять, что запрос пришел на корректное, но нежелательное доменное имя - и преадресовывать запросившего на такой-же URL, но с уже желемым доменным именем.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы триггер не срабатывал в определенное время?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    У элемента данных добавьте интервал с нулевым временем повтора интервала и периодом 4-4,07:00-07:10.
    В указанный период элемент данных не будет запрошиваться/приниматься/обрабатываться, а значит и триггеры по нему не будут срабатывать.
    Ответ написан