Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Подтверждение email .

Иван Скороходов Ученик (53), закрыт 4 года назад
Здравствуйте программисты. Нужна ваша помощь - пытаюсь сделать на своем сайте так, чтобы пользователь не мог зайти в личный кабинет без подтверждения своего email. Сейчас у меня так - после регистрации пользователю присваивается статус ,,0,, После подтверждения email, статус меняется на ,,1,, Таким путем можно пойти чтобы закрыть доступ статусу ,,0,, ?
\ mysqli_query ($link,"SELECT * FROM user WHERE email_status =0'".$email."'"$nr = mysqli_num_rows($r);
if($nr>0) $err = $err."Не подтвержден e-mail
";) \
Лучший ответ
dim565 Искусственный Интеллект (423771) 4 года назад
WHERE email_status =0'".$email."'"$nr такой код работать не будет, сами написали или скопировали криво?

Вот рабочий пример:
$result = mysqli_query($link, "SELECT email FROM user WHERE email_status = 0 AND email = '$email'");
if (mysqli_num_rows($result) > 0) {
// сюда добавьте код, чтобы вывести ошибку и не дать войти
}

Можно так:
$result = mysqli_fetch_assoc(mysqli_query($link, "SELECT email_status FROM user WHERE email = '$email'"));
if ($result['email_status'] == 0) {
// код, чтобы вывести ошибку
}

А лучше вообще переделать на PDO, так безопаснее и не нужно париться с фильтрацией $email для защиты от SQL injection
Иван СкороходовУченик (53) 4 года назад
Нет это я писал, просто, то как пример, как направление, пробовал таким путем не получается, потому и обратился за подсказкой. Спасибо большое за примеры, буду дальше учится. А насчет PDO, как - у меня весь сайт на php MySQLi . Еще раз спасибо.
dim565 Искусственный Интеллект (423771) Пожалуйста
Остальные ответы
Похожие вопросы