Как реализовать скрипт activ.php? - PullRequest
0 голосов
/ 29 августа 2011

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

URL будет выглядеть как

activate.php?confirm=h47H35gGdh7G6dh3j

и я проверю $_GET["confirm"] и сверю его с базой данных, но я не знаю, как перехватить все ошибки, с которыми я могу столкнуться, например:

  • Пользователь уже активирован
  • неправильный код активации
  • нет кода активации и т. Д.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2011

Мне самому удалось ответить.

По сути, я извлек значение из массива $ _GET и использовал это значение, чтобы увидеть, существует ли оно в базе данных, если оно есть, тогда я использовал другой оператор if, чтобы увидеть, было ли состояние этого пользователя уже установлено как «активное», если это так, он ничего не будет делать, но если учетная запись не будет активной, он установит ее в активном состоянии и подтвердит это.

0 голосов
/ 29 августа 2011

Чтобы не обнаруживать код активации:

if (!isset($_GET['confirm']) || empty($_GET['confirm'])) {
    die('Error: an activation code is required.');
}

Чтобы определить, что пользователь уже активирован, выполните поиск в базе данных, чтобы активировать идентификатор пользователя ($uid), затем проверьте базу данных, чтобы узнать, активирован ли уже пользователь. Если вы хотите избежать дополнительного поиска и не возражаете запустить дополнительное обновление (и вы не обновляете что-то вроде времени активации), вы можете запустить обновление, а затем проверить, сколько строк было затронуто ($stmt->rowCount() в PDO ). Если это ноль, но нет ошибки базы данных, просто пользователь уже активирован, и вы можете выдать ошибку.

Код активации неверен, если вы получите пустой набор (нулевые строки) из базы данных при поиске кода подтверждения.

...