Чем больше знаю, тем лучше понимаю, как мало знаю.
Вы думаете не так. Таблица main ВСЕГДА должна применяться ПОСЛЕ любых других таблиц. Это как default route в этой самой main, применяется когда все другие route не совпали/не подошли. Соответственно требовать от main применения раньше какой-то другой таблицы - это ставить телегу впереди лошади. Точнее плуг впереди трактора. Точнее баржу впереди бурлаков, во!
Чем больше знаю, тем лучше понимаю, как мало знаю.
Не отвечаете header(), а сами в этом скрипте обращаетесь к этой ссылке, качаете её, и отдаёте скачанное запросившему пользователю. Так будет работать. Но для того скрипта на отдельном порту ВСЕ такие коннекты будут с IP-адреса самого сервера, что плохо для разграничения доступа...
Чем больше знаю, тем лучше понимаю, как мало знаю.
А вы тупо не видите свой же исходный код? И не замечате, что спам-бот присылает сообщения с пустыми $key, то есть нигде нет поля "Комментарий", из-за которого нужно бы блокировать? И поля "x" тоже ни одного нет. Есть только "E-mail" и "upfile". Не видите, что POST делается не со страницы с формой, а на прямую?
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ну если автомобиль перевернуть вверх колёсами и поставить крышей на асфальт - он тоже не будет ездить. И с чего бы это вдруг? А нас ведь всё тот же автомобиль, он обязан ехать!
Так писать операцию сравнения нельзя. А в приведённом примере JavaScript сначала вычислит результат 604.5< -597.5 - получит false, который превратит в 0, потому что дальше ещё одна арифмитическая операция сравнения 0 < 512.5 - вот и получилось true. А второй пример написан правильно - и результат правильный.
P.S. Это не язык программирования выдаёт какую-то ошибочную дичь, нет. Это вы должны подстраивать свои хотелки под правила и логику языка программирования.
Чем больше знаю, тем лучше понимаю, как мало знаю.
Создаёте необходимое кол-во интерфейсов внутри этой виртуальк, и прибиваете к ним провайдерские IP. К vmbr0 ProxMox-а они сами присоединятся. Вот и всё.
Чем больше знаю, тем лучше понимаю, как мало знаю.
Скажите админам, что по умолчанию браузерами коннект делается на порт 80, HTTP.
Но если стои-и-иит плагииии-и-и-ин автоперевода на HTTPS, или сам сервер редиректит, или руками добавляешь S куда надо - вот тогда даааа, нате вам HTTPS. Но только тогда.
А по умолчанию, если набран просто домен - будет HTTP. Точка!
Чем больше знаю, тем лучше понимаю, как мало знаю.
Я вам подскажу: внутри TCP и UDP, если это не HTTP, нет имени домена. Вот совсем нет. Он используется в момент перевода доменного имени -> в IP-адрес, что бы потом создать коннект на этот IP-адрес. Он используется в HTTP-запросе, так исторически сложилось. Но в простом TCP и UDP его НЕТ, трафик приходит к вам БЕЗ доменного имени.
Чем больше знаю, тем лучше понимаю, как мало знаю.
Проще всего установить пакет lrzsz, и использовать команду sz filename.ext, конечно если ваш терминальный клиент поддерживает Z-Modem (или Y-Modem, или X-Modem).
Чем больше знаю, тем лучше понимаю, как мало знаю.
Одно и тоже изображение? С одного сервера оно скачается один раз, попадёт в кеш браузера, и будет показано везде, где указано. С разных серверов - будет качаться отдельно, с каждого сервера, и храниться в кеше - отдельно...
Если изображения разные - разные сервера ускорят загрузку, потому что будет 3 одновременных соединения.
Чем больше знаю, тем лучше понимаю, как мало знаю.
У вас стоит флаг /i, поэтому указывать A-Z излишне. В части перед @ могут появляться символы = и +, а полный список вариантов ещё страшнее. В обычных доменах символ подчёркивания не используется. Домены верхнего уровня сейчас могут быть длиннее 6 символов, такова современная реальность. Длину можно проверить через strlen($email) < 51.