[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не получается правильно использовать $_SESSION
dzisay
В общем есть страница записи в базу, данные на которую передаются POSTом с формы на другой странице.

Конструкция такого типа почему то не работает. Что я не правильно делаю?

<?php
if(time()-$_SESSION['time']>60)
{
Записываю данные в базу;
}
else
{
echo "Нельзя так часто отправлять сообщения";
}
?>





Спустя 1 минута, 35 секунд (30.03.2011 - 23:26) neadekvat написал(а):
В чем выражается то, что она не работает?
Правда, вопрос, от какого события там может пройти максимум 60 секунд?

Спустя 5 минут, 45 секунд (30.03.2011 - 23:31) dzisay написал(а):
Не работает, потому что не зависимо от пройденного времени в любом случае происходит запись в базу.

Ну а в общем я пытаюсь реализовать защиту от частых отправок сообщений, которые заносятся в базу. Может посоветуете какой то другой способ? blink.gif (Записывать в базу ip не вариант).

Спустя 2 минуты, 51 секунда (30.03.2011 - 23:34) alex12060 написал(а):

<?php
if((time()-$_SESSION['time'])>60)
{
Записываю данные в базу;
}
else
{
echo "Нельзя так часто отправлять сообщения";
}
?>

Спустя 7 минут, 48 секунд (30.03.2011 - 23:42) dzisay написал(а):
alex12060
Почему то сообщения всё равно добавляются не зависимо от времени. sad.gif

Спустя 2 минуты, 37 секунд (30.03.2011 - 23:45) alex12060 написал(а):
Покажи код, где ты присваиваешь $_SESSION['time'] значение.

Спустя 18 минут, 56 секунд (31.03.2011 - 00:04) dzisay написал(а):
При первой отправке сообщения. То есть:

<?php
if((time()-$_SESSION['time'])>60)
{
Записываю данные в базу;
session_start();
$_SESSION['time'] = time();
}
else
{
echo "Нельзя так часто отправлять сообщения";
}
?>

Спустя 8 минут, 16 секунд (31.03.2011 - 00:12) alex12060 написал(а):

<?php
session_start();
$_SESSION['time'] = !empty($_SESSION['time']) ? $_SESSION['time'] : 0;
if((time()-$_SESSION['time'])>60)
{
Записываю данные в базу;

$_SESSION['time'] = time();
}
else
{
echo "Нельзя так часто отправлять сообщения";
}
?>

Спустя 4 минуты, 59 секунд (31.03.2011 - 00:17) dzisay написал(а):
Работает smile.gif спасибо огромное!

Спустя 20 минут, 13 секунд (31.03.2011 - 00:37) Trianon написал(а):
$_SESSION['time'] = time(); можно было бы присвоить независимо от ветви.
Чтоб неповадно щелкать было.

Спустя 2 минуты, 17 секунд (31.03.2011 - 00:39) alex12060 написал(а):
Trianon

Подробней пожалуйста)

Спустя 2 минуты, 26 секунд (31.03.2011 - 00:42) Trianon написал(а):
<?php
session_start();
$_SESSION['time'] = 0+@$_SESSION['time'];

if((time()-$_SESSION['time'])>60)
echo "Записываю данные в базу";
else
echo "Нельзя так часто отправлять сообщения";

$_SESSION['time'] = time();
Быстрый ответ:

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