Александр Панков, IMHO, фингерпринт имеет смысл только если вы можете его получить независимо от клиента и так, чтобы злоумышленник гарантированно не мог его подменить. Если вы получаете фингерпринт JS-скриптом и отправляете на сервер, то никакого смысла для защиты он не имеет.
Дмитрий Свиридов, Такое на фронте (как минимум, на JS) решается достаточно легко. Если запрос получил 401, то он проверяет, не начал ли какой-то другой запрос процедуру обновления токена. Если нет, то поднимает флаг и сам начинает обновление. Если да, то дожидается опускания флага и использует обновлённый токен.
Slava Rozhnev, INSERT в любом случае увеличивает автоинкремент, даже если произошла ошибка. Поэтому, при вставке одного значения в справочник, проще сделать INSERT IGNORE, игнорируя ошибку уникального индекса, затем получить соответствующий этому значению id через SELECT.
Сергей, Вы не примеры давайте, а формальные правила. Какой же из вас мидл, если вы до сих пор формализовывать требования не научились. Предполагаю, что нужно что-то такое: /(?:[а-я\-\/ ]+(?:\.|,|\.,))*[а-я\- ]+/ui
Хотя формально здесь валидировать сложно, слишком много вариантов в жизни бывает, например "п. ж/д ст. Ладожское Озеро"
Сергей, Понятнее не стало. Сразу три города в одной строке? Или это один город, повторённый три раза? И будет ли правильной запись "г, Нижний., Новгород. "?