Как я сделал бы, чтобы проверить, существует ли электронное письмо actially? Наклон понимает, как сайты делают для отправки писем с уникальной ссылкой, на которую пользователи нажимают для проверки этого, он - владелец электронного письма = /
Сделайте 2 новыми столбцами названный activationkey и активированный и сохраните некоторую случайную строку, пошлите электронное письмо с activationkey и обновите пользователей, активированных =1, которые соответствуют той ссылке активации
register.php?a=activate&key=9cdfb439c7876e703e307864c9167a15
Какие-либо лучшие идеи?
Обычно я посылаю ссылку, содержащую идентификатор пользователя и ключ активации. Когда они посещают мой сценарий активации, если я нахожу совпадение, я активирую их.
При их регистрации я генерирую, возможно, 32 символа в верхнем/нижнем регистре буквенно-цифровых символов и устанавливаю их в качестве ключа активации. На этом этапе вы можете создать поле под названием "активировано", или вы можете предположить, что пользователь не активирован, если у него есть ключ активации.
uid | email | key ------------------------------------------------------------ 001 | j.smith@mysite.com | e09141f3f5a17fed6222fc0279b9afdf ------------------------------------------------------------ 002 | mary.tyler@abc.com | ------------------------------------------------------------
Когда пользователь получает доступ к сценарию активации, просто проверьте предоставленный ключ вместе с предоставленным идентификатором и, если найдено совпадение, сотрите ключ из записи пользователя в файле (или обновите ваше логическое поле 'activated') и откройте двери.
Если предоставленный адрес электронной почты не существует, то без потерь. Вы можете регулярно удалять все строки с ключами после месяца бездействия.
Одна из альтернатив активационным ключам - просто отправить сгенерированный пароль на электронную почту пользователя, если пользователь войдет в систему, которую он активировал (и, конечно, должен иметь возможность изменить пароль на тот, который он предпочитает).
Нет простого способа проверить, действительно ли электронная почта существует программно. Есть несколько способов (pinging почтового сервера и т.д.), но ни один из них не работает с настройками каждого почтового сервера. Заставить пользователя активировать свою учетную запись по ссылке, как Вы описали, это лучший способ сделать это. Также, вы можете захотеть иметь какой-нибудь повторяющийся скрипт вроде cron-job, который удаляет неактивированных пользователей по истечении определенного периода времени (для этого потребуется еще одна колонка в вашей таблице - метка времени).
Это полезно, потому что если пользователь регистрируется, но никогда не активирует свою учетную запись и удаляет электронную почту, а вы используете его электронную почту в качестве id (просто пример), он никогда не сможет завершить активацию. Или же, если пользователь попытается войти в систему, вы можете просто повторно отправить письмо с активацией на этот адрес.
Просто убедитесь, что в сообщении указаны все заголовки (ответ на, с и т.д.), чтобы ваше письмо не было помечено как спам.