Поэтому мне было интересно, как / если PHP имеет какое-то взаимное исключение при чтении и записи файлов.
Вот как я планирую использовать его:
На сайте, на котором я работаю, используется услуга оплаты, которая требует выхода из сервера, что затрудняет обработку заявок на формы, так что форма не отправляется в базу данных до тех пор, пока она не вернется из службы платежей. Информация может быть передана через платежную службу и срыт с другой стороны. Тем не менее, существует минимальная информация, которая может быть передана.
Моя идея решения:
Прежде чем регистрация будет передана платежной службе, обработайте и напишите операторы sql в файле, причем каждая группа операторов ссылается на регистрацию, разделенную некоторым токеном.
При возврате найдите запись на основе информации, отправленной через платежную службу, выполните инструкции и удалите регистрационный блок из файла.
Перефразируя вопрос:
-Так вопрос: в этом сценарии мне понадобится взаимное исключение из файла, и если да, то как мне его достичь? Может ли это быть заблокировано на нескольких языках? (Служба оплаты требует возврата к скрипту cgi / perl, хотя я мог бы включить скрипт php, который фактически обрабатывает)
-Как я буду запускать и выполнять SQL-запросы (желательно в perl)?
-Но мое решение даже кажется хорошим?
Благодаря,
Travis
PHP и Perl поддерживают flock()
.
Однако лучший способ сделать это – использовать базу данных. В вашей таблице DB может быть processed
столбец, который указывает, был ли обработан платеж. Когда вы отправляете запрос в службу платежей, добавьте запись с processed = 0
. Когда регистрация будет возвращена, обновите таблицу processed = 1
.