[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Срочная ссылка
Svekor
Здравствуйте форумчане. Пытаюсь сделать ссылку с временем жизни. Делаю на Denwer. Нашел урок в интернете, но никак не могу довести до ума. Оригинальный код пишет ошибку ,, не на объект,, пробую менять скобки пишет другие ошибки. Сейчас пишет - ,,Неустранимая ошибка: Uncaught исключение исключение с сообщением 'токен не валиден.- в ... трассировка стека: #0 {main},,

Подскажите пожалуйста что здесь не так ?
 
<?
include_once("bd.php");


$query = $db->prepare{
"INSERT INTO pending_users (username, token, tstamp) VALUES (?, ?, ?)"
};
$query->execute{
array(
$username,
$token,
$_SERVER["REQUEST_TIME"]
)

};

$url = "http://example.com/activate.php?token=$token";

///////

$message = <<<ENDMSG
Thank you for signing up at our site. Please go to
$url to activate your account.
ENDMSG;

mail($address, "Activate your account", $message);

///////

// получаем токен
if (isset($_GET["token"]) && preg_match('/^[0-9A-F]{40}$/i', $_GET["token"])) {
$token = $_GET["token"];
}
else {
throw new Exception("токен не валиден.");
}

// проверяем токен
$query = $db->prepare("SELECT username, tstamp FROM pending_users WHERE token = ?");
$query->execute(array($token));
$row = $query->fetch(PDO::FETCH_ASSOC);
$query->closeCursor();

if ($row) {
extract($row);
}
else {
throw new Exception("токен не валиден.");
}

// активируем пользовательский аккаунт
// ...

// удаляем токен из базы

$query = $db->prepare{
"DELETE FROM pending_users WHERE username = ? AND token = ? AND tstamp = ?"};
$query->execute(
array(
$username,
$token,
$tstamp
)
);


// 1 день в секундах = 60 секунд * 60 минут * 24 часа
$delta = 86400;

// проверка
if ($_SERVER["REQUEST_TIME"] - $tstamp > $delta) {
throw new Exception("время жизни токена истекло.");
}
// активируем пользовательский аккаунт
// ...



?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.