Проблемы активации учетной записи PHP

Я написал систему входа на свой сайт. Когда пользователь регистрируется, система отправляет по электронной почте ссылку для активации на адрес электронной почты, указанный пользователем. Ссылка содержит два параметра: адрес электронной почты и ключ. Параметр электронной почты содержит адрес электронной почты пользователя, а параметр ключа имеет регистрационный код, поэтому регистрацию можно проверить и изменить с ожидающей на подтвержденную. Страница активации должна получать столбец «Статус» из строки, для которой в столбце «Электронная почта» задан параметр электронной почты. По какой-то причине скрипт решает, что любая ссылка действительна, и пытается обновить статус учетной записи, независимо от того, существует она или нет.

Вот мой код:

<?php

$email = $_GET['email'];
if($email == "") {
  header("Location: http://www.zbrowntechnology.info/yard/register.php?message=Invalid Activation Link!");
  exit;
}
$key = $_GET['key'];
if($key == "") {
  header("Location: http://www.zbrowntechnology.info/yard/register.php?message=Invalid Activation Link!");
  exit;
}

$con = mysql_connect("HOST", "USER", "PASS") or die(mysql_error());
mysql_select_db("zach_yardad", $con) or die(mysql_error());
$query1 = "SELECT `Status` FROM Accounts WHERE `Email`='".mysql_real_escape_string($email)."' AND `Status`='".mysql_real_escape_string($key)."'";
$result1 = mysql_query($query1) or die(mysql_error());
if(mysql_num_rows($result1) <= 0) {
  header("Location: http://www.zbrowntechnology.info/yard/register.php?message=Invalid Activation Link!");
 exit;
} else {
  $query = "UPDATE Accounts SET `Status`='Confirmed' WHERE `Email`='$email'";
  mysql_query($query) or die(mysql_error());
  header("Location: http://www.zbrowntechnology.info/yard/login.php?message=Registration Complete!");
  exit;
}

?>

Вот действительная ссылка для активации:

http://www.zbrowntechnology.info/yard/activate.php?email=zach@zbrowntechnology.com&key=2772190956485245

Он активирует эту учетную запись, перейдя по ссылке, но будет перенаправлять на страницу входа после активации, если ссылка недействительна.


РЕДАКТИРОВАТЬ:

Вот результат запроса ОПИСАТЬ `Учетные записи` :

First Name  varchar(65) NO      NULL     
Last Name   varchar(65) NO      NULL     
Email   varchar(100)    NO      NULL     
Username    varchar(65) NO      NULL     
Password    varchar(65) NO      NULL     
Status  varchar(65) NO      NULL     
5
задан Daniel Trebbien 27 November 2010 в 01:49
поделиться