regex — Unescaping Unicode-символы в строках PHP

Если пользователь вводит свой пароль в форме входа на моем сайте как Password§1234, соответствующая переменная $ _POST будет содержать строку Пароль \ xc2 \ xa71234. Затем эта строка хэшируется и сравнивается с хэшем пароля, уже имеющимся в базе данных.

Это обычно не было бы проблемой, потому что это экранирование происходило бы как на этапе регистрации, так и на этапе входа в систему, и, следовательно, все равно соответствовало бы хешу в базе данных. Тем не менее, мой сайт разрешает вход в систему через настольный API, и этот API правильно интерпретирует строку без экранированных символов перед хэшированием. Следовательно, хеш рабочего стола не совпадает, и поэтому пользователь не может войти в систему.

Я знаю, что в этой теме много тем, но я не смог найти никаких решений, связанных с моей проблемой, что может быть связано с тем, что синтаксис \ xc2 \ xa7, а не U + 00A7.

Конечно, самым простым решением было бы избежать его на рабочем столе, но я бы скорее решил проблему, чем сделал бы все одинаково некорректным. Также проще обновить сервер, чем отправлять несколько обновлений приложений.

1

Решение

Похоже, вы можете просто использовать utf8_encode($password), Образец здесь

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]