Привет, я новичок в PHP и понятия не имею, возможно ли то, что я собираюсь спросить, или это даже имеет смысл, но здесь.
Я хочу выполнить PHP-скрипт, как если бы я выполнял отдельное приложение на WebServer, то, что я пытаюсь реализовать, заключается в том, что, когда Клиент покупает что-то на веб-сайте, и как только он видит уведомление о подтверждении платежа на веб-сайте, он должен разрешить закрыть окно браузера или выйти из системы, не затрагивая процесс генерации большого заказа, который запускается после того, как пользователь будет доставлен на страницу, которая показывает, что сделанный им платеж был успешным.
Сейчас я использую AJAX для вызова PHP-скрипта после обработки платежа и сохранил этот скрипт, чтобы игнорировать любой абонентский прерывание.
Это страница, которая сообщает пользователю, что платеж был получен успешно.
thankyou.php
Это страница, которая выполняет обработку, которая должна быть выполнена только после успешного получения платежа
FinishCheckoutProcess.inc.php
Теперь thankyou.php использует AJAX для выполнения FinishCheckoutProcess.inc.php асинхронно, а FinishCheckoutProcess.inc.php имеет в нем параметр PHP.ini, который выглядит следующим образом: ignore_user_abort (true);
Теперь комбинация AJAX и ignore_user_abort (true) позволяет выполнить процесс после оплаты без каких-либо ошибок, даже если пользователь закрывает окно своего браузера, но поскольку этот скрипт не имеет ничего общего с пользователем или браузером, я просто хотел узнать, можно запустить этот сценарий в фоновом режиме, как автономное приложение, независимо от браузера.
Также мой WebServer – это Apache, а ОС – Linux (Ubuntu OS).
Моя работа завершается, но я просто хочу знать, есть ли лучший / безопасный способ сделать это.
В любом случае, заранее спасибо всем, этот сайт помог мне больше, чем любая книга могла бы. Итак, все вы, эксперты, которые жертвуют свое время новичкам, как я, вы, ребята, потрясающие. Пожалуйста, следите за хорошей работой.
Еще раз спасибо.
Основываясь на полученных предложениях. Если я использую метод exec для выполнения FinishCheckoutProcess.inc.php, это приведет к выполнению команд, связанных с базой данных, и сможет ли он запускать дополнительные PHP-скрипты.
FinishCheckoutProcess.inc.php, в свою очередь, выполняет ряд других PHP-скриптов, которые, в свою очередь, выполняют другие скрипты PHP, поэтому с помощью команды «exec» для запуска FinishCheckoutProcess.inc.php создаются какие-либо трудности.
Процесс FinishCheckoutProcess.inc.php также взаимодействует с базой данных MySQL , поэтому я смогу это сделать, если я выполню этот скрипт с помощью команды « exec ». Я передаю необходимый объект соединения MySQLi в этот PHP-скрипт прямо сейчас. Поэтому я могу передать его так же, как с помощью « exec »,
Также процесс довольно тяжелый, поскольку он создает набор из 4 файлов изображений, используя IMagick и ImageMagick .
Он генерирует набор из 4 файлов изображений для каждого заказанного продукта, поэтому, если количество 1 продукта равно 10, тогда генерируемые общие файлы будут 1x10x4 = 40
Если есть два продукта, у которых есть количество как 2, а у другого – количество, равное 4, тогда генерируемые общие файлы будут 1x2x4 = 8 + 1x4x4 = 16 = 24
Таким образом, этот скрипт может понадобиться работать в течение длительного времени и не может быть разрешен для остановки из-за причин времени, он должен завершить то, что он начал.
В основном логика и процесс FinishCheckoutProcess.inc.php довольно сложны, поэтому просто хотите подтвердить, может ли « exec » справиться с этим или нет.
Также я не уверен, но некоторые из них также используют переменные $ _SESSION, но если это проблема, которую я могу изменить, переменные $ _SESSION будут использоваться только в одном месте и да, то $ _SESSION get устанавливается в браузере перед FinishCheckoutProcess. Выполняется скрипт inc.php . По некоторым предыдущим скриптам PHP.
Я просто хочу выполнить скрипт FinishCheckoutProcess.inc.php независимо от родительского / вызывающего сценария, то есть thankyou.php , так что если пользователь закрывает браузер, то FinishCheckoutProcess.inc.php не будет останавливаться или прерываться, если использовать родительский / вызывающий скрипт т.е. thankyou.php теперь больше не работает.