Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сделать проверку Email на свободность при регистрации?

Как сделать проверку Email на свободность при регистрации?


     19.07.2014    Email, DLE, регистрация    Общие вопросы по PHP, MySQL    4990

вопрос
Всем привет. Хочу сделать при регистрации проверку свободности Email на подобии проверки логина. То есть ввел Email убрал курсор с поля и прошла автоматическая проверка наличия Email в БД. Предыстория в том что я например зарегистрирован на множестве сайтов и очень часто забываю что на сайте уже зарегистрирован и пытаюсь зарегистрировать новый аккаунт, после чего мне пишет что мой имейл уже зарегистрирован и я иду восстанавливать пароль.
Вывод сделать такой же как и при проверке логина. Может кто знает как это реализовать ?

Ответил: vitnet


1.0 registration.tpl
        <tr>
            <td class="label">Ваш E-Mail:<span class="impot">*</span></td>
            <td><input type="text" name="email" id="email" class="f_input" /> <input class="bbcodes" style="height: 22px; font-size: 11px;" title="Проверить доступность E-Mail для регистрации" onclick="CheckEmail(); return false;" type="button" value="Проверить E-Mail" />
            <div id='result-email'></div></td>
        </tr>

2.0 engine/classes/js/dle_js.js
найти
function CheckLogin(){var a=document.getElementById("name").value;ShowLoading("");$.post(dle_root+"engine/ajax/registration.php",{name:a},function(a){HideLoading("");$("#result-registration").html(a)});return!1}

добавить ниже
function CheckEmail(){var a=document.getElementById("email").value;ShowLoading("");$.post(dle_root+"engine/ajax/registration.php",{email:a},function(a){HideLoading("");$("#result-email").html(a)});return!1}

3.0 engine/ajax/registration.php

18 комментариев

FastFud
Юзер

FastFud - 19 июля 2014 00:41 -

***Комментарий удален***

Julius123
Юзер

Julius123 - 19 июля 2014 00:42 -

Один способ
Второй способ

Я не пойму как эти скрипты проверяют наличие E-Mail в БД. Они проверяют лишь корректность введенного имейла. Зачем вы нажимаете ответ если не поняли вопроса?

Julius123
Юзер

Julius123 - 19 июля 2014 00:44 -

FastFud,
Вы издеваетесь?! Читайте пожалуйста мое сообщение выше!

FastFud
Юзер

FastFud - 19 июля 2014 00:47 -

Да, моя вина, не понял вопрос, прошу прощения.

P.S - Если сделать так как вы хотите(может ошибаюсь, если так то поправьте) то будет нагрузка, проверок будет много.

Julius123
Юзер

Julius123 - 19 июля 2014 00:51 -

FastFud,
Я думаю 1 запрос к БД при регистрации это не слишком много.

FastFud
Юзер

FastFud - 19 июля 2014 00:53 -

Julius123, например, пользователей много, при регистрации если e-mail уже есть в базе, пользователь будет дальше проверять и так пока не найдет свободный.

1 запрос при каждой проверке с 1 пользователя. 15 проверок = 15 запросов будет с 1 пользователя только, а если одновременно проверят несколько пользователей?)

Julius123
Юзер

Julius123 - 19 июля 2014 00:55 -

FastFud,
я не очень силен технически но разве нельзя просто сделать запрос есть ли в БД в столбике email совпадения с введенным имейлом и вывести сообщение что этот имейл уже используется если найдено совпадение?

FastFud
Юзер

FastFud - 19 июля 2014 01:10 -

***Комментарий удален***

Gopr
Юзер

Gopr - 19 июля 2014 01:16 -

Не по теме, но зачем скрипты когда есть html5?
<input type="email">

FastFud
Юзер

FastFud - 19 июля 2014 01:21 -

html5 - Это не выход

FastFud
Юзер

FastFud - 19 июля 2014 01:10 -

Не думаю )

D0Gmatist
Юзер

D0Gmatist - 19 июля 2014 01:12 -

Цитата: FastFud
Можно еще и так

Цитата: FastFud
Один способ
Второй способ

вы приводите примеры валидаторов емайл а человеку нужна реализация идеи проверки наличия емайла в БД

FastFud
Юзер

FastFud - 19 июля 2014 01:14 -

Да, моя вина, не понял вопрос, прошу прощения.

Julius123
Юзер

Julius123 - 19 июля 2014 01:18 -

D0Gmatist,
первый человек который меня понимает с первого раза )

Julius123
Юзер

Julius123 - 19 июля 2014 14:50 -

3.0 engine/ajax/registration.php

Большое спасибо за реализацию) А нельзя ли как то пошагово сделать изменения вместо замены всего кода в registration.php? у меня этот файл измененный и восстанавливать не вариант.

vitnet
PHP-developer

vitnet - 19 июля 2014 15:53 -


Julius123
Юзер

Julius123 - 19 июля 2014 19:44 -

vitnet,
большое спасибо, попробую установить

scarlet
Юзер

scarlet - 6 ноября 2020 15:40 -

А как на dle 14 всё это дело посадить ?)

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх