Станислав Бодро́в, причём тут пакетный фильтр и mod_realip? Задача mod_realip - не фильтрация пакетов, а подстановка IP-адреса из заголовка в переменную remote_addr и всё. Читать логи, где везде стоит один и тот же IP-адрес лоадбалансера вместо IP-адресов посетителей - то ещё удовольствие, если в этих логах нужно что-нибудь выцепить. Я уже не говорю о том, что само веб-приложение может адреса пользователей как-нибудь использовать, например, выдавать капчу при большом кол-ве запросов с одного и того же IP.
sbh, я обычно делаю так:
На поля формы добавляю нужные аттрибуты (required, pattern и прочее), добавляю кнопку отправки с type=submit, никакие обработчики кроме onsubmit не вешаю.
В этом случае при отправке формы (не важно, кнопкой или нажатием на enter в любом из полей, НО НЕ методом form.submit() из JS) - сначала выполняется валидация полей с required, pattern или новыми в HTML5 типами полей input (email, phone и т.п.), а потом только при правильности вызывается событие onsubmit.
В событии, в свою очередь, делаю следующее:
1) отменяю стандартное событие отправки формы
2) вешаю на кнопку submit disabled=true, дабы юзер не мог вдавить enter и отправить её много раз или отправить даблкликом (некоторые чайники не отличают одинарный клик от двойного и пользуются в браузере двойным).
3) делаю доп. валидацию если надо (которую невозможно стандартными средствами сделать)
4) если всё прошло, то заворачиваю поля формы в FormData и кидаю их через ajax.
Ну и на стороне сервера не забываю проверять.
Ещё при этом не забыть повесить какой-нибудь обработчик на поля, дабы при изменении полей убирать disabled с кнопки отправки, чтобы в случае, если отправка формы по каким-то причинам не прошла и форма оказалась заблочена, юзер смог отредактировать поля и отправить вновь (либо делать это после получения ответа от ajax или отваливания этого ответа по тайм.ауту)
Ezhyg, про то, что на самом деле всё хранится в C:\Windows\winsxs, я в курсе, и это в принципе правильно, при обновлении системной библиотеки не надо её перезаписывать, просто переставить ссылку на новую версию)
Это-то понятно, но почему было не оставить для 32-битных программ System32, а для 64-битных не добавить System64? Либо вообще сделать так, чтобы папка System не существовала физически, а виртуальная файловая система по этому имени подставляла либо System32, либо System64 в зависимости от разрядности запущенного приложения (как сейчас делает с System32->SysWOW64 для 32-битных программ)
А ошибок в запросе точно никаких нет? Вангую, что таблица называется у вас keys, а не kays, но вы ошибки по какой-то причине не обрабатываете, и некорректные запросы молча проглатываются
Уже нашёл, для апача это `ProxyErrorOverride On`, для nginx `fastcgi_intercept_errors on`
Но возможно ли настроить так, допустим, чтобы страница подменялась только в случае непустого тела ответа, возвращённого со стороны FPM?
Допустим, если скрипт сам формирует страницу с ошибкой - то показывать ту страницу, что сформировал скрипт, а если не формирует ничего и тупо выплёвует только 500 и ничего кроме заголовков - то подменять в таком случае?
Не пойдёт, потому как интервал в 1000 микросекунд ещё ещё не гарантирует, что будет каждые 1000 микросекунд вызываться, может вызваться чуть позже и проскочить через 00:00:00. Например, предыдущий вызов в 23:59:59.999, а следующий через 1002 микросекунды в 00:00:01.001.
Лучше запомнить текущую дату, а каждую секунду проверять, если она поменялась - значит скрипт перевалил за полночь.
humanIvan, она удаляется браузером. Но полагаться на её безопасность не следует (то есть, юзер может почистить куки вручную раньше этого срока или подкрутить эту куку так, чтобы она была вечной)
humanIvan,
3) это библиотека, которую использует express для работы с сессиями
4) срок жизни куки - это в течение какого срока кука будет храниться в браузере пользователя (по истечению этого срока может быть удалена)