Технический сбой

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

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


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

вопрос
Всем привет. Хочу сделать при регистрации проверку свободности 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 - -

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

Julius123
Юзер

Julius123 - -

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

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

Julius123
Юзер

Julius123 - -

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

FastFud
Юзер

FastFud - -

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

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

Julius123
Юзер

Julius123 - -

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

FastFud
Юзер

FastFud - -

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

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

Julius123
Юзер

Julius123 - -

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

FastFud
Юзер

FastFud - -

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

Gopr
Юзер

Gopr - -

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

FastFud
Юзер

FastFud - -

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

FastFud
Юзер

FastFud - -

Не думаю )

D0Gmatist
Юзер

D0Gmatist - -

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

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

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

FastFud
Юзер

FastFud - -

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

Julius123
Юзер

Julius123 - -

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

Julius123
Юзер

Julius123 - -

3.0 engine/ajax/registration.php

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

vitnet
PHP-developer

Julius123
Юзер

Julius123 - -

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

scarlet
Юзер

scarlet - -

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

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

наверх