mysql — Acquire_lock () не работает. Бот по-прежнему отправляет запросы быстро. PHP + AJAX

Вчера я опубликовал вопрос о том, что кто-то использует бота для использования моего сайта ставок и очень быстро нажимает «Бросок», чтобы получить одинаковые номера бросков.

Прекратите отправку ботом нескольких запросов быстро. PHP + AJAX

Кто-то дал мне ответ — использовать блокировку. Я так и сделал, но он вернулся, и это не сработало. Увидеть ниже:

введите описание изображения здесь

Может кто-нибудь взглянет на мой код и скажет, что я делаю неправильно или этого просто недостаточно.

Страница отправляет запрос, используя ajax, вы можете найти код на предыдущем вопросе, так как я не думаю, что это актуально.

Он отправляет его в php-файл, фрагмент которого приведен ниже:

include '../../inc/functions.php'; //This is where the lock functions are stored.

$lock = acquire_lock("foo");

if (empty($_GET['_unique']) || mysql_num_rows(mysql_query("SELECT `id` FROM `players` WHERE `hash`='".prot($_GET['_unique'])."' LIMIT 1"))==0) exit();

$newSeed=generateServerSeed();
mysql_query("UPDATE `players` SET `server_seed`='$newSeed' WHERE `id`=$playerinv[id] LIMIT 1");

$settings=mysql_fetch_array(mysql_query("SELECT * FROM `system` LIMIT 1"));

$player=mysql_fetch_array(mysql_query("SELECT * FROM `players` WHERE `hash`='".prot($_GET['_unique'])."' LIMIT 1"));
$player['server_seed_']=$player['server_seed'];
$player['server_seed']=(double)substr($player['server_seed'],27);
// More content...
release_lock($lock);
?>

$ newseed — это переменная с номером броска. Как видите, новый обычно генерируется во время выполнения.

Внутри functions.php находится следующее:

<?php
function acquire_lock($name) {
return fopen($name, "rw");
}
function release_lock($lock) {
fclose($lock);
}
?>

Спасибо, что нашли время, чтобы прочитать и дайте мне знать, что вы думаете / решения.

0

Решение

function acquire_lock($name) {
$file = fopen($name, "rw");
flock($file, LOCK_EX);
return $file;
}
function release_lock($file) {
flock($file, LOCK_UN);
fclose($file);
}

Настоящая блокировка не открыть или закрыть файл, но flock функция.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector