Я фактически создаю веб-приложение с помощью PHP и обращаюсь за помощью, проверяя пользователя. Как и на некоторых веб-сайтах, при регистрации вам отправляется электронное письмо с подтверждением. Как реализовать это в PHP? Все, что я знаю, это то, что я должен использовать функцию PHP mail()
для отправки электронной почты. Пожалуйста, помогите. Необходимо. Благодарю. :)проверить пользователя по электронной почте в PHP
ответ
как у нас с CSRF защитой вы создаете уникальный токен.
$token = md5(uniqid(rand(), TRUE));
Вы сохраняете это значение в вашей сессии для этого адреса электронной почты, и когда пользователь нажимает ссылку по электронной почте (вы передаете маркер через query-string) сравнить два значения.
Чтобы сделать его более безопасным, вы можете точно так же, как с помощью CSRF добавить ограничение по времени.
Это очень широкий вопрос, так что мы можем дать только широкий ответ, но общий метод сделать это
- вставить адрес электронной почты пользователя в базе данных, но пометить его как непроверенные
- создать уникальный регистрационный ключ и вставить его в другую таблицу только для этих ключей
- отправить по электронной почте на адрес электронной почты пользователя с ссылкой на ваш сайт, который проходит этот регистрационный ключ в качестве аргумента (например, http://site.com/confirm.php?key=1234)
- когда этот URL-адрес ited, отметьте адрес электронной почты как подтвержденный и удалите временно созданный регистрационный ключ
Спасибо, Патрик. Это очень помогает. Все трое (Джо, вы и Альфред) дали полное решение моего действительно «широкого» вопроса. Приветствия. Оставайся на связи. :) – ikartik90
Откуда вы знаете, что пользователь посетил URL? Или, это уникальный URL-адрес, предоставляемый каждому пользователю? – ggkmath
@ggkmath из-за шага 2, «создайте уникальный регистрационный ключ». Если вы используете последовательные номера, убедитесь, что у кого-то есть возможность догадаться о следующем в последовательности, но если вы сделаете что-то вроде суммы случайного числа md5, никто не собирается это догадываться. – Patrick
Ответ Patricks правильный, хотя я хочу указать, что есть другие возможности!
Вам необязательно создавать и хранить уникальный токен в базе данных. Это служебные данные, которые нужны только один раз.
Вы также можете воспользоваться односторонним хешированием.
Например, отправьте пользователю код md5('my-secret-application-token'.$user_email_adress)
.
Вы можете проверить это точно так же, но не нужно хранить секретный код.
Если я украду 'my-secret-application-token', тогда я могу войти как любой пользователь, которого я бы хотел: P. – Alfred
true @Alfred это причина, почему пароли, связки ключей, жетоны и все эти вещи были созданы! было бы скучно, если бы там тебя не украли. –
Спасибо, Джо. Это моя проблема до конца. Спасибо за помощь. Оставайся на связи. Приветствия. :) – ikartik90
- 1. Проверка подлинности пользователя PHP по электронной почте
- 2. php отправить пароль пользователя по электронной почте
- 3. PHP - Отправить имя пользователя по электронной почте
- 4. Поиск пользователя по электронной почте?
- 5. Wordpress получить идентификатор пользователя по электронной почте
- 6. как переслать текст пользователя по электронной почте
- 7. искать пользователя в ActiveDirectory по электронной почте
- 8. Google+ получить идентификатор пользователя по электронной почте?
- 9. Форма php по электронной почте
- 10. php сообщение по электронной почте
- 11. PHP-автоответ по электронной почте
- 12. Форма PHP по электронной почте
- 13. Подтверждение создания пользователя по электронной почте
- 14. Как отправить товар по электронной почте пользователя
- 15. Lotus Notes: Форма пользователя по электронной почте
- 16. отправить имя пользователя по электронной почте
- 17. Firebase Аутентификация: Lookup пользователя по электронной почте
- 18. Отправка по электронной почте аутентификации имени пользователя
- 19. . Идентификация по электронной почте/имени пользователя .NET
- 20. Получение twitter пользователя по электронной почте
- 21. Получите Facebook имя пользователя по электронной почте
- 22. Аутентификация пользователя Django по электронной почте
- 23. Результаты поиска по электронной почте на PHP-адресе пользователя
- 24. Получить пользователя по электронной почте от Linkedin (PHP)
- 25. Получение электронной почты по электронной почте/электронной почте Facebook
- 26. Запуск PHP-сессии по электронной почте
- 27. PHP erigi: Износ (проверка по электронной почте)
- 28. Проверка подлинности по электронной почте в php?
- 29. Php логин по электронной почте в mysql
- 30. Ответить Комментарий по электронной почте в PHP
Почему, черт возьми, ваш пробег через md5. Вы просто создали уникальный ключ, не столь уникальный. – Petah
lol Это достаточно уникально для этого прецедента. – Alfred
Спасибо, Альфред. Вы получили мне правильное решение, чтобы продолжить работу над этой задачей. Ура! :) – ikartik90