Задать вопрос

Ошибка, при одновременном запуске php с одинаковыми post данными?

Помогите, пожалуйста. Никогда с таким не встречался. Проблема в том что с ajax отправляется запрос на сервер, с определенным $_POST['num'], ему по этому номеру выдается товар(ы). Сами они хранятся построчно и распарсить не проблема, но вот с точки зрения защиты произошла трабла - если скрипт одновременно запустить, то он выдаст столько же раз, сколько одновременных запусков. Пробовал в temp таблице создавать временную запись делать, что текущий номер в обработке - бесполезно.
//Проверяем на то, существует ли заказ с номером из POST
for($i=0; $i<sizeof($array['data']); $i++){
        $sum = $array['data'][0]['sum']['amount'];
        $comment = $array['data'][0]['comment'];
        $status = $array['data'][0]['status'];
        if(($order['amount'] == $sum or $sum > $order['amount']) and $order['rand'] == $comment and $status == 'SUCCESS'){
            $size = intval($order['size']);
            $order_number = $order['number'];
            $order_random = $order['rand'];
            $db->Query("SELECT * FROM `product` WHERE `id`='$order_number'");
            $product = $db->FetchArray();
            $output = $product['link'];
            $output_array = explode(PHP_EOL, $output); //Разбиваем строку
            for ($j=0; $j<$size; $j++){
                $data .= $output_array[$j]; // Выводим пользователю товары в N количестве
                unset($output_array[$j]); // Удаляем их из массива
            }
            $input = implode(PHP_EOL, $output_array); // И потом записываем в строку
            $db->Query("UPDATE `product` SET `link`='$input' WHERE `id`='$order_number'");
            $db->Query("DELETE FROM `order` WHERE `rand`='$order_random'"); //Удаляем номер заказа
            $product_name = $product['name'];
            $product_date = time();//date("F j, Y, g:i a");
            $db->Query("INSERT INTO `sold` (`product`, `how`, `date`, `price`, `code`, `extract`) VALUES ('$product_name', '$size', '$product_date', '$sum', '$order_random', '$data')");
            $fail = 1;
            break;
        }
    }
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Какая ошибка выводится?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы