Форум

Навигация Форума
Вы должны войти, чтобы создавать сообщения и темы.

Двойные транзакции

НазадСтраница 3 из 25Далее

ByFly,

Цитата: ByFly
Я все понимаю, OOP, Laravel, UI и прочее, вы в этом ох*енные дрочеры и тд и тп.
НО бл*дь, человек изобрел колесо, оно и в Африке колесо, оно будет круглым, тут та же фишка, думайте, ломайте головы, но ведь можно все просто сделать.

P.S. епт, создай куку, запиши туда IP и сделай проверку и всё

Двойные транзакции
Двойные транзакции

Цитата: ByFly
ипать ты остряк, ну и что, пусть вызывается хоть 100 раз, ему то что из этого?


Разойдитесь епта батя прибыл в здание, влетел с ноги как говорится...

Идрить ты бестолочь. А прикинь там браузер или программа и как бы 2 вкладки с одной сессией на обе. И оп одной кнопкой отправляются обе паралельно. Вотэта удааар вотэта взрыв!

steam, еб*ть ты умный, установи тогда гугл рекаптчу умник бл*дь или напиши свою такую же, Вы походу реально издеваетесь тут

Цитата: ByFly
еб*ть ты умный, установи тогда гугл рекаптчу умник бл*дь или напиши свою такую же, Вы походу реально издеваетесь тут


Да причем тут капча? Происходило одновременное нажатие на кнопку отправить, такую херню можно провернуть вроде даже через IMacros, и капча не особо может помочь!
sleep тоже не проканает, если прошло одновременное нажатие то происходит и проверка на доступный баланс, а так как еще по первой транзакции списание не прошло, то условие проходит, и поэтому снимает баланс даже в минус! Решение такое, что бы блокировать таблицу на время транзакции и разблокировать ее по завершении!

Цитата: ra4ok14
Решение такое, что бы блокировать таблицу на время транзакции и разблокировать ее по завершении!


Ну так сделал? Недавно было такое, только у тебя отправляют 2 запроса одновременно, а у меня такие проверки проходили в while и когда mysql не успевала обновлять баланс первого запроса проходил второй и получалось в точности как у тебя, средства списывались переводились, а баланс уходил в минус.

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

В моем случае, ошибка была в составление запроса, который вытягивал баланс. Когда изменил запрос, данные начал немного по другому вытягивать mysql начала отрабатывать как положено.

Цитата: ИльюхА
Ну так сделал? Недавно было такое, только у тебя отправляют 2 запроса одновременно, а у меня такие проверки проходили в while и когда mysql не успевала обновлять баланс первого запроса проходил второй и получалось в точности как у тебя, средства списывались переводились, а баланс уходил в минус.

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

В моем случае, ошибка была в составление запроса, который вытягивал баланс. Когда изменил запрос, данные начал немного по другому вытягивать mysql начала отрабатывать как положено.


а как на счет ПДО, где можно делать откат?

оппачки, кто на форум то заходит...

Двойные транзакции

ra4ok14, да не может быть такого, для такой штуки и придумали функцию break и sleep

Цитата: Forceman
оппачки, кто на форум то заходит.


Старая любовь ? :fellow:

ByFly,
Да причем тут break и sleep ? ты сам то понимаешь о чем говоришь?
Сам подумай логически! Юзер отправляет одновременно два запроса, sleep(1), скрипт начинает висеть секунду, не забывай что эти оба запроса просто будут висеть, как только пройдет нужный промежуток времени продолжится так же одновременное исполнение кода! А break вообще как тут можно было бы использовать, я вообще не понимаю!

ИльюхА,
да вроде да, сделал, использовал Транзакции и автоматическая фиксация изменений

ra4ok14, окей, тогда пишешь функцию на проверку браузера и версии браузера, откидываешь всякие доподобные браузеры или те, что для разработчиков и воуля, ни один бот не пролезет :winked:

НазадСтраница 3 из 25Далее
Авторизация
*
*
Регистрация
*
*
*
Генерация пароля