Ограничение кликов по кнопке в реальном времени

Статус
Закрыто для дальнейших ответов.

deeand

Member
Регистрация
13.12.2011
Сообщения
23
Всем привет!
Задался недавно вопросом: Как можно реализовать ограничение кликов по кнопке в реальном времени?
Допустим, стоит ограничение в 10 кликов на кнопки. Кликнул первый Вася по кнопке у Пети появилось "Осталось 9 кликов". После 10-ого нажатия кнопка деактивируется.
Я предполагаю, что без БД не обойтись.

Что посоветуете?
 

Indev29

Just Code...
Регистрация
15.08.2012
Сообщения
370
Использовать БД.
 

Indev29

Just Code...
Регистрация
15.08.2012
Сообщения
370
Чтобы не материть всех, сразу отвечу в 3 последние темы. Сегодня не буду ничего не кому писать, так как вопросы просто детские. Ждите ответа завтра.
 

AngelGabriel

И имя мне - легион
Регистрация
23.11.2008
Сообщения
778
Можно сделать и без базы. Открываем в двух браузерах и смотрим http://learn.alpaca....ua/exzmple.html


PS Если клики сбрасываются не доходя до 10, значит кто то еще открыл страницу и сбросил их.
 

deeand

Member
Регистрация
13.12.2011
Сообщения
23

AngelGabriel

И имя мне - легион
Регистрация
23.11.2008
Сообщения
778
Держи, оптимизируй код, я не очень старался. https://dl.dropbox.com/s/16pf7u0bsv5letu/clicks.zip?dl=1
Там в комплете идет простенькая библиотека для ajax.
 

KDES70

Well-Known Member
Регистрация
16.02.2012
Сообщения
73
клева !! пригодится
 

mrlasking

$_GET['rich'] or die('trying');
Регистрация
22.05.2012
Сообщения
323
Ну, и, если в проекте нужно сделать много подобного функционала, то используем node.js и все зашибись)
 

deeand

Member
Регистрация
13.12.2011
Сообщения
23
А можете показать пример с 2-я кнопками на одной странице?
 

deeand

Member
Регистрация
13.12.2011
Сообщения
23
Мой хостинг не поддерживает perl, поэтому perl-скрипты помогли перевести на php. Но что-то всё равно кнопка не хочет работать:(

HTML
Код:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>example</title>
<script type="text/javascript" src="HTTP-client/jshttpclient.js"></script>
</head>
<body>
<div id="main"></div>
<button id="btn">10 clicks</button>
<a href="cgi-bin/rest.php" target="_blank">Reset clicks</a>
<script>
setInterval(function() {
var httpClient = new HTTPClient();
function CustomHTTPHandler() {
		    this.onInitializing = function() {
			  };
			    this.onerror = function(status, statusText) {
			    };
			    this.onprogress = function(responseText, contentLength) {
			    };
			    this.onFinally = function(result) {
				    c = document.getElementById("main");
				    c.innerHTML = result;
			    };
}
httpClient.customHTTPHandler = new CustomHTTPHandler();
httpClient.get('http://localhost/realtime_button/cgi-bin/exemple.php');
httpClient.next();
}, 2000);

function goes() {
var httpClient = new HTTPClient();
function CustomHTTPHandler() {
		    this.onInitializing = function() {
			  };
			    this.onerror = function(status, statusText) {
			    };
			    this.onprogress = function(responseText, contentLength) {
			    };
			    this.onFinally = function(result) {
				    c = document.getElementById("main");
				    c.innerHTML = result;
			    }
}
httpClient.customHTTPHandler = new CustomHTTPHandler();
var params= new HTTPParams();
params.add('i', 1);
httpClient.get('http://localhost/realtime_button/cgi-bin/exemple.php', params);
httpClient.next();
}
document.getElementById('btn').onclick = function() {goes();}
document.getElementById('rest').onclick = function() {

}
</script>
</body>
</html>

PHP-скрипт 1:
Код:
<?php
print "Content-Type: text/plain; charset=utf-8\n\n";
$fl=file("example.txt");
if (intval($fl[0]) >= 10) {
    print "10 clicks!!!!!\n";
    exit;
    }
if ($_REQUEST('i') != 1) {
    print $fl[0]."\n";
    }
else {
    $fw=fopen("example.txt","w");
    fputs($fw,($fl[0]+1)."\n");
    fclose($fw);
    print $fl[0]+1;
    }
?>
PHP-скрипт 2:
Код:
<?php
print "Content-Type: text/plain; charset=utf-8\n\n";
$fw=fopen("example.txt","w");
if ($fw) close($fw); else die "Cen't open file!";
print "Done!";
?>
Что делаю не так?
 

AngelGabriel

И имя мне - легион
Регистрация
23.11.2008
Сообщения
778
ваш хостинг это localhost?

Код:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>example</title>
<script type="text/javascript" src="HTTP-client/jshttpclient.js"></script>
</head>
<body>
<div id="main"></div>
<button id="btn">10 clicks</button>
<a href="cgi-bin/rest.php" target="_blank">Reset clicks</a>
<script>
setInterval(function() {
var httpClient = new HTTPClient();
function CustomHTTPHandler() {
			 this.onFinally = function(result) {
			   c = document.getElementById("main");
			   c.innerHTML = result;
						 };
}
httpClient.customHTTPHandler = new CustomHTTPHandler();
httpClient.get('http://localhost/realtime_button/cgi-bin/exemple.php');
httpClient.next();
}, 2000);
function goes() {
var httpClient = new HTTPClient();
function CustomHTTPHandler() {
			    this.onFinally = function(result) {
				   c = document.getElementById("main");
				   c.innerHTML = result;
						 }
}
httpClient.customHTTPHandler = new CustomHTTPHandler();
var params= new HTTPParams();
params.add('i', 1);
httpClient.get('http://localhost/realtime_button/cgi-bin/exemple.php', params);
httpClient.next();
}
document.getElementById('btn').onclick = function() {goes();}
</script>
</body>
</html>
 

deeand

Member
Регистрация
13.12.2011
Сообщения
23
Нет нет:) Просто сейчас тестирую свой сайт на локальном сервере. А хостинг у меня действительно не поддерживает perl.
 

Volter9

defined('SURRENDER') or die(); // StarWars
Регистрация
27.05.2012
Сообщения
1 145
[member=deeand], какую ошибку выводит?
 
Статус
Закрыто для дальнейших ответов.
Верх Низ