Как предотвратить дублирование адресов электронной почты в форме регистрации пользователя?

Я хочу предотвратить дублирование адресов электронной почты во время регистрации. Как я могу проверить правильность текстового поля при записи, чтобы тот же адрес электронной почты не принимался дважды?

4 ответа

Я думаю, что это, вероятно, наиболее целесообразно обрабатывать как ограничение уникальности (или уникальный индекс) в этом столбце базы данных. Это обеспечит целостность базы данных, и вы можете проверить сообщение об ошибке, чтобы определить, была ли причиной неудачной вставки/обновления.


Я знаю два пути.

Способ 1: динамически запрашивать базу данных и отображать сообщение, такое как "Этот адрес электронной почты уже находится на сервере, выберите другой". Вы будете делать проверку каждый раз, когда пользователь вводит текстовое поле.

Способ 2: иметь двухфазную регистрацию, когда при отправке информации вы выполняете процедуру проверки, чтобы проверить, что вся информация приемлема - в вашем случае было бы проверять дублирование адресов электронной почты.

Я рекомендую второй способ, который я использую - это снижает нагрузку на сервер.


Этот код не будет вводиться в/в текстовое поле, а при отправке форм вы должны проверить, был ли он уже использован. Также, если вы хотите сделать это иначе (во время ввода пользователем), вы можете использовать ajax, чтобы помочь вам сделать это.


Я бы предложил сделать как уникальный индекс в базе данных для защиты целостности данных, так и вы должны иметь валидации при отправке или через какой-либо вызов ajax, который также проверяет адрес электронной почты.

licensed under cc by-sa 3.0 with attribution.