Двойные транзакции
Цитата: steam от 20.01.2017, 03:13ByFly,
Цитата: ByFlyЯ все понимаю, OOP, Laravel, UI и прочее, вы в этом ох*енные дрочеры и тд и тп.
НО бл*дь, человек изобрел колесо, оно и в Африке колесо, оно будет круглым, тут та же фишка, думайте, ломайте головы, но ведь можно все просто сделать.P.S. епт, создай куку, запиши туда IP и сделай проверку и всё
Цитата: ByFlyипать ты остряк, ну и что, пусть вызывается хоть 100 раз, ему то что из этого?
Разойдитесь епта батя прибыл в здание, влетел с ноги как говорится...Идрить ты бестолочь. А прикинь там браузер или программа и как бы 2 вкладки с одной сессией на обе. И оп одной кнопкой отправляются обе паралельно. Вотэта удааар вотэта взрыв!
ByFly,
НО бл*дь, человек изобрел колесо, оно и в Африке колесо, оно будет круглым, тут та же фишка, думайте, ломайте головы, но ведь можно все просто сделать.
P.S. епт, создай куку, запиши туда IP и сделай проверку и всё
Разойдитесь епта батя прибыл в здание, влетел с ноги как говорится...
Идрить ты бестолочь. А прикинь там браузер или программа и как бы 2 вкладки с одной сессией на обе. И оп одной кнопкой отправляются обе паралельно. Вотэта удааар вотэта взрыв!
Цитата: ByFly от 20.01.2017, 05:57steam, еб*ть ты умный, установи тогда гугл рекаптчу умник бл*дь или напиши свою такую же, Вы походу реально издеваетесь тут
steam, еб*ть ты умный, установи тогда гугл рекаптчу умник бл*дь или напиши свою такую же, Вы походу реально издеваетесь тут
Цитата: WmRush от 20.01.2017, 12:10Цитата: ByFlyеб*ть ты умный, установи тогда гугл рекаптчу умник бл*дь или напиши свою такую же, Вы походу реально издеваетесь тут
Да причем тут капча? Происходило одновременное нажатие на кнопку отправить, такую херню можно провернуть вроде даже через IMacros, и капча не особо может помочь!
sleep тоже не проканает, если прошло одновременное нажатие то происходит и проверка на доступный баланс, а так как еще по первой транзакции списание не прошло, то условие проходит, и поэтому снимает баланс даже в минус! Решение такое, что бы блокировать таблицу на время транзакции и разблокировать ее по завершении!
Да причем тут капча? Происходило одновременное нажатие на кнопку отправить, такую херню можно провернуть вроде даже через IMacros, и капча не особо может помочь!
sleep тоже не проканает, если прошло одновременное нажатие то происходит и проверка на доступный баланс, а так как еще по первой транзакции списание не прошло, то условие проходит, и поэтому снимает баланс даже в минус! Решение такое, что бы блокировать таблицу на время транзакции и разблокировать ее по завершении!
Цитата: ИльюхА от 20.01.2017, 13:51Цитата: ra4ok14Решение такое, что бы блокировать таблицу на время транзакции и разблокировать ее по завершении!
Ну так сделал? Недавно было такое, только у тебя отправляют 2 запроса одновременно, а у меня такие проверки проходили в while и когда mysql не успевала обновлять баланс первого запроса проходил второй и получалось в точности как у тебя, средства списывались переводились, а баланс уходил в минус.Вообще такое может происходит если запросы выполняются асинхронно, а если нет, то mysql должна обрабатывать и блокировать такие запросы на программном уровне и само собой не допускать такого.
В моем случае, ошибка была в составление запроса, который вытягивал баланс. Когда изменил запрос, данные начал немного по другому вытягивать mysql начала отрабатывать как положено.
Ну так сделал? Недавно было такое, только у тебя отправляют 2 запроса одновременно, а у меня такие проверки проходили в while и когда mysql не успевала обновлять баланс первого запроса проходил второй и получалось в точности как у тебя, средства списывались переводились, а баланс уходил в минус.
Вообще такое может происходит если запросы выполняются асинхронно, а если нет, то mysql должна обрабатывать и блокировать такие запросы на программном уровне и само собой не допускать такого.
В моем случае, ошибка была в составление запроса, который вытягивал баланс. Когда изменил запрос, данные начал немного по другому вытягивать mysql начала отрабатывать как положено.
Цитата: MARIOS от 20.01.2017, 14:48Цитата: ИльюхАНу так сделал? Недавно было такое, только у тебя отправляют 2 запроса одновременно, а у меня такие проверки проходили в while и когда mysql не успевала обновлять баланс первого запроса проходил второй и получалось в точности как у тебя, средства списывались переводились, а баланс уходил в минус.Вообще такое может происходит если запросы выполняются асинхронно, а если нет, то mysql должна обрабатывать и блокировать такие запросы на программном уровне и само собой не допускать такого.
В моем случае, ошибка была в составление запроса, который вытягивал баланс. Когда изменил запрос, данные начал немного по другому вытягивать mysql начала отрабатывать как положено.
а как на счет ПДО, где можно делать откат?
Вообще такое может происходит если запросы выполняются асинхронно, а если нет, то mysql должна обрабатывать и блокировать такие запросы на программном уровне и само собой не допускать такого.
В моем случае, ошибка была в составление запроса, который вытягивал баланс. Когда изменил запрос, данные начал немного по другому вытягивать mysql начала отрабатывать как положено.
а как на счет ПДО, где можно делать откат?
Цитата: WmRush от 20.01.2017, 23:08ByFly,
Да причем тут break и sleep ? ты сам то понимаешь о чем говоришь?
Сам подумай логически! Юзер отправляет одновременно два запроса, sleep(1), скрипт начинает висеть секунду, не забывай что эти оба запроса просто будут висеть, как только пройдет нужный промежуток времени продолжится так же одновременное исполнение кода! А break вообще как тут можно было бы использовать, я вообще не понимаю!ИльюхА,
да вроде да, сделал, использовал Транзакции и автоматическая фиксация изменений
ByFly,
Да причем тут break и sleep ? ты сам то понимаешь о чем говоришь?
Сам подумай логически! Юзер отправляет одновременно два запроса, sleep(1), скрипт начинает висеть секунду, не забывай что эти оба запроса просто будут висеть, как только пройдет нужный промежуток времени продолжится так же одновременное исполнение кода! А break вообще как тут можно было бы использовать, я вообще не понимаю!
ИльюхА,
да вроде да, сделал, использовал Транзакции и автоматическая фиксация изменений
Цитата: ByFly от 21.01.2017, 00:28ra4ok14, окей, тогда пишешь функцию на проверку браузера и версии браузера, откидываешь всякие доподобные браузеры или те, что для разработчиков и воуля, ни один бот не пролезет
ra4ok14, окей, тогда пишешь функцию на проверку браузера и версии браузера, откидываешь всякие доподобные браузеры или те, что для разработчиков и воуля, ни один бот не пролезет