[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Прошу помощи или подсказки с $_SERVER
m4a1fox
Добрый вечер уважаемые эксперты. Есть такой код
if(!isset($_SESSION['name'][$name])){
$result = mysql_query("INSERT INTO `comment` SET
`name` = '"
.mysql_real_escape_string($name)."',
`id_mail` = '"
.(int)$id_mail."',
`datetime` = '"
.mysql_real_escape_string($datetime)."',
`date` = '"
.mysql_real_escape_string($date)."',
`time` = '"
.mysql_real_escape_string($time)."',
`text` = '"
.mysql_real_escape_string($text)."'
"
);
$_SESSION['name'][$name] = $name;
Тут SERVER запрещает нажатие F5. Но как сделать, что бы после определенного кол-ва времени, скажем 30 секунд, можно было бы оставить комментарий?



Спустя 1 минута, 52 секунды (26.02.2011 - 23:46) alex12060 написал(а):
Это ты себя спроси. Ты же код пишешь, и сам запрещаешь как-то Ф5

Спустя 53 секунды (26.02.2011 - 23:46) Sopromatenot написал(а):
Цитата
Тут SERVER запрещает нажатие F5.

??

Спустя 55 секунд (26.02.2011 - 23:47) m4a1fox написал(а):
alex12060
Ну в общем запрещает. Если нажать ф5 то будет надпись - вы уже оставляли комментарий!)

Спустя 1 минута, 9 секунд (26.02.2011 - 23:48) blade написал(а):
Для этого можно делать временем

# Количество минут через которое можно оставлять следующее сообщение в минутах
$minute = 1;

if(time() >= ($_SESSION["time_comment"][$name] + $minute * 60)){
$result = mysql_query("INSERT INTO `comment` SET
`name` = '"
.mysql_real_escape_string($name)."',
`id_mail` = '"
.(int)$id_mail."',
`datetime` = '"
.mysql_real_escape_string($datetime)."',
`date` = '"
.mysql_real_escape_string($date)."',
`time` = '"
.mysql_real_escape_string($time)."',
`text` = '"
.mysql_real_escape_string($text)."'
"
);
$_SESSION["time_comment"][$name] = time();


вроде так если я не ошибся ))

Спустя 3 минуты, 6 секунд (26.02.2011 - 23:52) m4a1fox написал(а):
blade
О! Попробую. Спасибо!

Спустя 1 минута, 23 секунды (26.02.2011 - 23:53) uWeb написал(а):
Ненадежная проверка.

Спустя 3 минуты, 32 секунды (26.02.2011 - 23:57) alex12060 написал(а):
Я бы проще сделал.
Либо:

Писал в сессию время. ПОтом сверял с настоящим. Но убить сессию просто

Поэтому:

Как происходит проверка?
Ты вытаскиваешь datetime, там юникс время надеюсь. Далее делаешь проверку, как у блейда, только с теми же параметрами, и если время норма - развешаешь постить.

А вообще, ограничиться можно одним запросм к базе. И там делать все мат. проверки)

Спустя 18 минут, 44 секунды (27.02.2011 - 00:15) m4a1fox написал(а):
uWeb
А какая надежная?

Спустя 2 часа, 6 секунд (27.02.2011 - 02:15) inpost написал(а):
Запрос в mysql, а дата сверяется как date() > date_format(лалала INTERVAL + 1 MINUTE), если mysql_num_rows > 0 - значит ещё нельзя оставлять коммент.
Либо вообще в сессию запихни дату, чтобы БД не парить, и нет проблем. Сессия никогда не подводит.
Быстрый ответ:

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