Intereting Posts
PHPUnit лучшие практики для организации тестов Добавление месяцев в DateTime с DateInterval изменяет исходную дату для соответствия новой дате Хранение объектов между запросами в PHP без сериализации Stubbing метод, вызываемый конструктором класса woocommerce_checkout_order_processed функция выполнения крюка дважды не может отправлять электронную почту с localhost с помощью codeigniter (пустая страница) Почему бы не использовать «защищенный» или «закрытый» в PHP? Как безопасно хранить пароль в MySQL и проверять подлинность внешних служб Работает ли foreach () для нечисловых ключей массива? PHP – остановка выполнения вызывающей функции Установлена ​​композиция laravel4, полученная proc_open, недоступна Каков правильный способ остановить проверку от наблюдателя событий в Magento? Смешивание php и javascript – при каких условиях? CodeSniffer sniff для генерации графиков зависимостей для PHP-кода? максимальная максимальная максимальная максимальная производительность при достижении уровня 200

проверить пользователя по электронной почте на PHP

Я на самом деле создаю веб-приложение с помощью PHP и обращаюсь за помощью к верификации пользователя. Как и на некоторых веб-сайтах, когда вы регистрируетесь, электронное письмо отправляется вам по ссылке подтверждения. Как реализовать это в PHP? Все, что я знаю, это то, что я должен использовать функцию PHP mail() для отправки электронной почты. Пожалуйста помоги. Необходимо. Благодарю. 🙂

так же как и с помощью защиты CSRF, вы генерируете уникальный токен.

 $token = md5(uniqid(rand(), TRUE)); 

Вы сохраняете это значение в своем сеансе для этого письма, и когда пользователь щелкает ссылку по электронной почте (вы передаете токен через строку запроса ), вы сравниваете два значения.

Чтобы сделать его более безопасным, вы можете так же, как с CSRF добавить ограничение по времени.

Ответ Patricks правилен, хотя я хочу указать, что есть другие возможности!

Вы не обязательно должны создавать и хранить уникальный токен в своей базе данных. Это служебные данные, которые нужны только один раз.

Вы также можете воспользоваться односторонним хешированием.

Например, отправьте пользователю код md5('my-secret-application-token'.$user_email_adress) .

Вы можете проверить это точно так же, но не нужно хранить секретный код.

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

  1. вставьте адрес электронной почты пользователя в свою базу данных, но отметьте его как непроверенный
  2. создать уникальный регистрационный ключ и вставить его в другую таблицу только для этих ключей
  3. отправьте электронное письмо на адрес электронной почты пользователя со ссылкой на ваш сайт, который передает этот регистрационный ключ в качестве аргумента (например, http://site.com/confirm.php?key=1234 )
  4. когда этот URL-адрес посещен, отметьте адрес электронной почты как проверенный и удалите временно созданный регистрационный ключ