TopGun89: да. Там логика работы такая: директива map выставляет переменную $bad_ua в 0 или 1, а строка с if проверяет, что эта переменная выставлена в единицу, и если это так, выдает статус 403.
403 — это HTTP-статус Forbidden, то есть "доступ к данному документу запрещен". При желании можно использовать вместо него 404, это уже дело личных предпочтений. Статуса 444 в HTTP-протоколе нет,
На самом деле нужно еще учитывать предполагаемый объем данных. Если их планируется пара десятков или сотен, то на тексте делается спокойно. Если несколько тысяч или больше, то соглашусь, нужна база.
Кроме того, если есть гарантия, что в строке-ключе не будет символа /, то никакое обертывание не нужно, достаточно правильно использовать функцию explode с указанием параметра limit.
TopGun89: да.
И там же прописываем правило, проверяющее, что совпадение найдено и блокирующее доступ со статусом 403:
if ($bad_ua=1) {
return 403;
}
(Хотя при желании можно его и в основном конфиге прописать).
Что-то не очень понятна задача. Если в столбце correctAnswers уже лежит количество правильных ответов (а не результат ответа на конкретный вопросы), то зачем вообще нужны подзапросы? Достаточно обычный SELECT сделать на эти столбцы с сортировкой и группировкой и все.
Там сформулировано так, что можно подумать, что если предыдущий запуск скрипта завершился с fatal error, то больше его запускать не надо. (По крайней мере, я так понял.) Но в общем случае — соглашусь с вами.
Первое — это условие «применить правило, указанное ниже, только в том случае, если то, что указано в REQUEST_FILENAME не является обычным файлом», второе — еще одно условие «применить правило, указанное ниже, только в том случае, если то, что указано в REQUEST_FILENAME не является каталогом».
$('#button-main').click(function(){
setTimeout(function() {
// делаем что-то с кнопкой 1
},50);
setTimeout(function() {
// делаем что-то с кнопкой 2
},150);
setTimeout(function() {
// делаем что-то с кнопкой 1
},250);
}
Поразмыслил еще немного над кодом. Скорее всего, нужно в функции setRows работать с _txt[0], а не просто _txt, так как Dark Hole совершенно правильно заметил
Вот тут вот что с чем сравнивается: _txt.clientHeight != _txt.scrollHeight ? И точно ли должно быть полное совпадение или же что-то вроде _txt.clientHeight < _txt.scrollHeight ?