Моя система регистрации учетной записи homefried работает следующим образом:
- заполнить регистрационную форму
- проверить, существует ли имя пользователя - отклонить / передать
- скопировать данные в таблицу временных пользователей, отправьте электронное письмо с подтверждением
- после использования ссылки в электронном письме с подтверждением, скопируйте данные из временной таблицы в таблицу активных пользователей
На днях пользователь отправил мне электронное письмо с просьбой сообщить ему об ошибке "Не удалось создать пользователя. "
Я не мог вспомнить, чтобы когда-либо слышал об этом, поэтому я покопался в своем регистрационном коде, и эта ошибка выскакивает, если не удается выполнить запрос на вставку временных данных в таблицу активных пользователей.
Не удалось, потому что его имя пользователя с уникальным индексом в таблице уже существовало в таблице активных пользователей ... но он прошел первоначальную проверку существующего имени пользователя ...?
Получилосьимя, которое он пытался зарегистрировать, было «Пользователь», но уже был «пользователь», поэтому в игру вступает нечувствительность к регистру.
Существует ли имя пользователя?строка запроса:
SELECT username FROM user_basic_data WHERE username='$cleanTempUsername'
Подтверждено, теперь вставьте в строку активной таблицы:
INSERT INTO user_basic_data (username, ...) VALUES ('$activeUsername', ...)
Таким образом, чувствительность к регистру, очевидно, применяется, когда я запускаю оператор выбора ("Пользователь"! = "user "), но не применяется, когда я запускаю вставку.
Использование заглавных букв важно для многих пользователей, так каков здесь мой способ наименьшего сопротивления?