Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает $delta, Пишет ошибку $delta 
:(
    Опции темы
ROM710
Дата 4.6.2019, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.2.2014

Репутация: нет
Всего: нет



Здравствуйте, не могу найти информацию - есть ошибка ,,FormatFormat filesDownloadDownload Error on line 61: parse error, unexpected T_VARIABLE($delta), expecting ')'! ,,  как исправить не знаю ?
Код

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

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

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


Выделяет этот участок - ,, $delta = 86400; ,, Кто знает в чем ошибка, или информацию на эту тему ?
PM MAIL   Вверх
whatisnot
Дата 4.6.2019, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



В представленном ошибок нет, если не считать таковой "страшилку" с  Exception.
PM MAIL   Вверх
ksnk
Дата 5.6.2019, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



а ДО строчки с присвоением дельты что было ?

Добавлено через 3 минуты и 24 секунды
Написано же - expecting ')' - скобка где-то сверху не закрыта.



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ROM710
Дата 5.6.2019, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.2.2014

Репутация: нет
Всего: нет



Здравствуйте, whatisnot - объясни пожалуйста, почему ,,Exception,, называешь страшилкой ?

ksnk - а до присвоения дельты было - 
Код

$token = md5(uniqid($username, true));
{
$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
    )
)


Наверное что то в середине кода ошибка ?

Добавлено через 4 минуты и 57 секунд
Здравствуйте, whatisnot - объясни пожалуйста, почему ,,Exception,, называешь страшилкой ?

ksnk - а до присвоения дельты было - 
Код

$token = md5(uniqid($username, true));
{
$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
    )
)


Наверное что то в середине кода ошибка ?
PM MAIL   Вверх
ROM710
Дата 5.6.2019, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.2.2014

Репутация: нет
Всего: нет



Извините, вот так выдает ошибку на дельту 
Код

$token = md5(uniqid($username, true));
{
$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("время жизни токена истекло.");
}

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

}


Добавлено через 7 минут и 2 секунды
Выше указанный код, выдает ошибку - ,, ошибка синтаксического анализа, непредвиденный T_VARIABLE ($delta)!,,

Добавлено через 7 минут и 5 секунд
Выше указанный код, выдает ошибку - ,, ошибка синтаксического анализа, непредвиденный T_VARIABLE ($delta)!,,

Добавлено через 7 минут и 6 секунд
Выше указанный код, выдает ошибку - ,, ошибка синтаксического анализа, непредвиденный T_VARIABLE ($delta)!,,
PM MAIL   Вверх
ksnk
Дата 5.6.2019, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



точка с запятой отсутствует после закрывающей скобки на строке 58. 

найди где-нибудь редактор с подсветкой синтаксиса. Жизнь станет существенно проще.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
whatisnot
Дата 5.6.2019, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



Цитата(ROM710 @  5.6.2019,  11:02 Найти цитируемый пост)
whatisnot - объясни пожалуйста, почему ,,Exception,, называешь страшилкой ?


Ну а как это еще назвать этом можно? Представьте, что вы в магазине, покупали, покупали, деньги закончились. Что поделать, пошли оплачивать то, на что хватило денег. Вас рассчитали, а потом обухом по башке - "Ага собака, хотел больше купить, а сам без денег пришел!"

Подобная логика и в вашем коде. Ну наверное надо как-то цивильно такие вопросы решать.     
PM MAIL   Вверх
ROM710
Дата 5.6.2019, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.2.2014

Репутация: нет
Всего: нет



Все верно ksnk , PHP Formatter дал зеленый свет. Но, работая сейчас на Денвер, сервер выдает ошибку ,, Неустранимая ошибка: Uncaught исключение исключение с сообщением 'токен не валиден трассировка стека: #0 {main} ,, 
Здесь строка 20 будет. Почему так ?

whatisnot высказывает недовольство на ,,Exception,, может и как раз в нем причина ?

Сейчас читаю PHP: Исключения - Manual, может там найду решения.

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  output.php 1,57 Kb
PM MAIL   Вверх
ROM710
Дата 5.6.2019, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.2.2014

Репутация: нет
Всего: нет



Все верно ksnk , PHP Formatter дал зеленый свет. Но, работая сейчас на Денвер, сервер выдает ошибку ,, Неустранимая ошибка: Uncaught исключение исключение с сообщением 'токен не валиден трассировка стека: #0 {main} ,, 
Здесь строка 20 будет. Почему так ?

whatisnot высказывает недовольство на ,,Exception,, может и как раз в нем причина ?

Сейчас читаю PHP: Исключения - Manual, может там найду решения.

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  output.php 1,57 Kb
PM MAIL   Вверх
ROM710
Дата 5.6.2019, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.2.2014

Репутация: нет
Всего: нет



Все верно ksnk , PHP Formatter дал зеленый свет. Но, работая сейчас на Денвер, сервер выдает ошибку ,, Неустранимая ошибка: Uncaught исключение исключение с сообщением 'токен не валиден трассировка стека: #0 {main} ,, 
Здесь строка 20 будет. Почему так ?

whatisnot высказывает недовольство на ,,Exception,, может и как раз в нем причина ?

Сейчас читаю PHP: Исключения - Manual, может там найду решения.

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  output.php 1,57 Kb
PM MAIL   Вверх
ROM710
Дата 5.6.2019, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.2.2014

Репутация: нет
Всего: нет



Все верно ksnk , PHP Formatter дал зеленый свет. Но, работая сейчас на Денвер, сервер выдает ошибку ,, Неустранимая ошибка: Uncaught исключение исключение с сообщением 'токен не валиден трассировка стека: #0 {main} ,, 
Здесь строка 20 будет. Почему так ?

whatisnot высказывает недовольство на ,,Exception,, может и как раз в нем причина ?

Сейчас читаю PHP: Исключения - Manual, может там найду решения.

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  output.php 1,57 Kb
PM MAIL   Вверх
ROM710
Дата 5.6.2019, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.2.2014

Репутация: нет
Всего: нет



Все верно ksnk , PHP Formatter дал зеленый свет. Но, работая сейчас на Денвер, сервер выдает ошибку ,, Неустранимая ошибка: Uncaught исключение исключение с сообщением 'токен не валиден трассировка стека: #0 {main} ,, 
Здесь строка 20 будет. Почему так ?

whatisnot высказывает недовольство на ,,Exception,, может и как раз в нем причина ?

Сейчас читаю PHP: Исключения - Manual, может там найду решения.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  output.php 1,57 Kb
PM MAIL   Вверх
whatisnot
Дата 5.6.2019, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 14.12.2014

Репутация: 1
Всего: 2



Во-первых Денвер умер еще при батьке Махно, установите Open Server, это тоже собственно архив без инсталляции. Но у этого сервера куда более возможностей базовых, которые пригодятся, и этот сервер живет и развивается.

Во-вторых об исключениях я говорил в том плане, что нужно не вываливать исключения на такие вещи, а отказывать в доступе, записи, отправлении почты и т.п. Тут с логикой не все хорошо, она у вас просто убойная.  
PM MAIL   Вверх
ROM710
Дата 5.6.2019, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.2.2014

Репутация: нет
Всего: нет



Лучше код здесь выкладывать чем прикреплять
Код

$token = sha1(uniqid($username, true));
$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("время жизни токена истекло.");
}
// активируем пользовательский аккаунт
// ...



Строка 19 будет.

Добавлено через 5 минут и 35 секунд
Лучше код здесь выкладывать чем прикреплять
Код

$token = sha1(uniqid($username, true));
$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("время жизни токена истекло.");
}
// активируем пользовательский аккаунт
// ...



Строка 19 будет.

Добавлено через 5 минут и 37 секунд
Лучше код здесь выкладывать чем прикреплять
Код

$token = sha1(uniqid($username, true));
$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("время жизни токена истекло.");
}
// активируем пользовательский аккаунт
// ...



Строка 19 будет.

Добавлено через 5 минут и 38 секунд
Лучше код здесь выкладывать чем прикреплять
Код

$token = sha1(uniqid($username, true));
$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("время жизни токена истекло.");
}
// активируем пользовательский аккаунт
// ...



Строка 19 будет.

Добавлено через 14 минут и 50 секунд
Извините, сайт тормозит - потому так получилось. Про Open Server я слышал, попробую освоить. Но этот код хочется довести до ума. Сколько времени на него потратил.
PM MAIL   Вверх
ROM710
Дата 5.6.2019, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 24.2.2014

Репутация: нет
Всего: нет



Извините, сайт тормозит - потому так получилось. Про Open Server я слышал, попробую освоить. Но этот код хочется довести до ума. Сколько времени на него потратил.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1738 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.