PHP: задержка по времени

12
A2
На сайте с 06.01.2008
Offline
10
2977

все привет )

хоть тресни но не могу составить следующее, а именно;

нужен PHP скрипт который должен делать задержку на сайте например на 10 секунд определенную команду (нажатие кнопки и тп и тд), чтобы до 10 с команда была не активна а уже после 10 с активировалась, подобное на JS не пойдет (из-за кроссплатформенности). нужно чтоб на сервере все обрабатывалось. Например зашел на сайт, почитал текст сек 10 и отправил комент, но до 10 с комент отправить не получится...

вроде все ;), надеюсь на php это можно написать

aterr_222 добавил 11.04.2009 в 12:37

я же пытался сделать с помощью функции date, но повторная загрузка страницы полностью обновляла исходные параметры первой загрузки, так что сравнивать две переменные ($d, $d1) таким образом не помогло

Gregor25
На сайте с 06.10.2005
Offline
133
#1

а зачем ПХП, сделайте через фрейм ;) его перегружайте через meta refresh с новым контентом через нужное время, ну а если очень нудно именно на ПХП, поиграйтесь со sleep

или при заходе юзера фиксируйте время а потом от него отсчитывайте при выполнени команды с задержкой

Мы с тобой две капли разные, одной воды слёзы облака
R
На сайте с 02.10.2007
Offline
16
#2

храните время открытия страницы в сессии, потом при попытке добавить коммент проверяйте разницу между временем открытия и временем попытки добавления. Естественно еще нужно запоминать адреса страниц.

зы. я бы все таки посоветовал заюзать JS (дополнительно). Благо есть инструменты для поддержки работы в разных браузерах. Пользователи - наше все :)

Никогда не говори никогда (http://suhih.ru)
A2
На сайте с 06.01.2008
Offline
10
#3
храните время открытия страницы в сессии, потом при попытке добавить коммент проверяйте разницу между временем открытия и временем попытки добавления. Естественно еще нужно запоминать адреса страниц.

кстати, мне также сразу такая идея пришла только вот раскрыть полностью как тут не смог =), ну если не поможет придется с помощью javasript

В общем спс за интересные советы

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#4
JS не пойдет (из-за кроссплатформенности)

из-за чего?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
BR
На сайте с 28.06.2008
Offline
75
#5
aterr_222:
Например зашел на сайт, почитал текст сек 10 и отправил комент, но до 10 с комент отправить не получится...
вроде все ;), надеюсь на php это можно написать

- можно в сессии хранить время последнего захода и не принимать сообщения отправленные менее чем через 10 сек после этого времени

- но вообще-то JavaScript-ы должны помочь в такой задаче :) (setTimeout существует с первых версий JS и работает везде)

- не заметил сообщение от Rusk, Rusk +1

размещение сайтов (http://www.brim.ru)
somefork
На сайте с 16.08.2008
Offline
99
#6

Аяксом делайте нужые действия. Возьмите jquery - он существенно упрошает работу с аяксом и работает он во всех адекватных браузерах.

Ремонтостан (http://remontostan.com)
A
На сайте с 16.11.2008
Offline
12
#7

Если таки решите через пых (иногда есть резон, например - попытки логина, таймаут для поиска как на серчах)


<?php
session_start();
$lastActionTime = time();
$previosActionTime = isset($_SESSION['time']) ? $_SESSION['time'] : 0;

$actionTimes = array('postComment' => 10, 'showPage' => 3, 'login' => 2);

// $action = 'postComment';

if(isset($actionTimes[$action])) {
if($lastActionTime - $previosActionTime < $actionTimes[$action]) {
die('Прошло слишком мало времени ;(');
}
}

// В самом конце запишем последнее действие
$_SESSION['time'] = time();

Как-то так. Грубый вариант, чтобы показать принцип.

Пишу на похапэ (/ru/forum/342374). Аудит скриптов. За деньги. Качественно.
ВC
На сайте с 02.02.2006
Offline
463
#8

Я использую сессии очень часто, а потому хочу напомнить один нюанс: если у посетителя запрещены куки, то сессия работать не будет, ибо каждая перезагрузка страницы будет создавать новую сессию.

Это ограничение можно обойти, если сделать такую настройку рнр, что при отключенных куки идентификатор сессии пойдет через адрес как GET-параметр в виде index.htm?SID=77ecd26c80be2b2ff86ea917a3842ee9. Но грамотный посетитель может его стереть.

HraKK
На сайте с 02.03.2009
Offline
128
#9

Сессия будет работать так как ты сказал - будет приписывать параметр в ГЕТ. Читаем - http://phpfaq.ru/session.

Делается так - проверка на пхп в сессии + проверка на JS. Где JS внешний фильтр который поможет не долбать пользователя высчитывать 10 сек, а если уж отключит JS то php все равно не пропустит.

я гарант (/ru/forum/493343) уже не оказываю данные услуги, извините.
CR
На сайте с 21.11.2008
Offline
146
#10

айпи то за 10 сек не подменишь. дальше по аналогии с сессией

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий