Здравствуйте читающие. Пытаюсь сделать ссылку на Denwer со сроком жизни. Нашел урок в интернете, но и оригинал и мои все правки выдают какую ни будь ошибку. Кто сможет подскажите пожалуйста, что здесь не так ?

Код: Выделить всё

$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("время жизни токена истекло.");
}
// активируем пользовательский аккаунт
// ...
В таком исполнении пишет ошибку - ,,Неустранимая ошибка: Uncaught исключение исключение с сообщением 'токен не валиден.- в ... Z:\home\site-15 \ www \ index.php: 34 трассировка стека: #0 {main},,
Комментариев нет
Комментариев пока нет, но ты можешь быть первым! Нужно лишь войти или зарегистрироваться и поделиться своим мнением.

Похожие темы