2016-03-15 4 views
0

Я пытаюсь сделать небольшой скрипт обратного отсчета только в секундах, который обновляет мою базу данных, когда она достигает 0, и снова запускает процесс обратного отсчета.Countdown seconds, update database и loop Countdown

Пример:

HTML

<p>Updating your profile in <span class="countdown"></span> seconds.</p> 

мне нужен профиль, который обновляется каждые 780 секунд после того, как отсчет достигнет 0, что делает Ajax вызов для обновления профиля и сбрасывает отсчет повторять сначала.

Также я попробовал несколько сценариев обратного отсчета, но пользователь может изменить сценарий в браузере, есть ли возможность защитить сайт от пользователей, изменяющих код?

Благодаря

+0

Вы можете минимизировать и угадать ваши js, что затрудняет их чтение и понимание, но поскольку он работает на клиенте, нет уверенного способа предотвратить изменение пользователем кода. – dgig

+0

есть ли способ сделать это на стороне сервера? – TiagoF

+0

Не совсем потому, что у вас нет способа узнать, остается ли пользователь на вашей странице после его подачи (если вы используете PHP по крайней мере). Какова цель этого? Безопасность? – dgig

ответ

0

Im делая сайт для моего друга, что потоки, и он хочет, чтобы дать HES зрителей точек каждый позволяет говорить 780seconds (10 минут), чтобы они могут потратить их, чтобы заработать призы. .. так что мне нужен сценарий, чтобы начать обратный отсчет на PageLoad и Repete каждые 780 секунд и обновить базу данных ..

Это больше вопрос безопасности как мне кажется. Вам интересно, как вы можете безопасно отслеживать события времени на клиенте.

Вы сталкиваетесь с некоторыми проблемами: каждый, кто знает, как изменить код, чтобы чаще использовать вызов AJAX (тем самым давая им больше очков), поэтому клиентская сторона не представляется возможной, но вы также не можете отслеживать взаимодействие пользователя со своей страницей только с помощью кода на стороне сервера.

Так что я думаю, что вы хотите, это сочетание того и другого. Вы хотите периодические вызовы ajax на стороне клиента, но вы хотите проверить синхронизацию на основе некоторого кода на стороне сервера - вы, вероятно, захотите отправить вызовы AJAX, но проверьте время и идентификатор пользователя, проверив идентификатор сеанса или файла cookie.

+0

Я просто не хочу, чтобы пользователь редактировал секунды скрипта, потому что они не могут реально обновить что-либо напрямую, потому что страница обновления принимает только запросы ajax .. поэтому мне просто нужно убедитесь, что конечный пользователь не может отредактировать 780 секунд, чтобы сказать 10 секунд. – TiagoF

+0

Это моя точка - вы не можете. Но вы можете следить за пользователем и временем на стороне сервера, чтобы при поступлении вызова AJAX вы можете сказать, что «этот вызов произошел слишком рано, не обращайте на него внимания и не начисляйте никаких баллов». – dgig

0

Когда вы делаете обновление базы данных, добавьте к нему временную метку, а затем, когда вы выполняете какие-либо другие проверки вызовов, отметьте метку времени, чтобы проверить, прошло ли 780 секунд.

Если время больше 780, то сделайте это обновление db, если нет, не делайте ничего.

+0

ohh, thats actualy хорошая идея, im используя laravel, так что всегда есть timsestamp. спасибо, однако я сосать на javascript, не могу понять, как сделать скрипт: p – TiagoF