Как обратится к другому файлу в PHP, чтобы только запустить скрипт, без обратной отправки результата?
Нужно без применения include или require.
Например в JQuery:
$.ajax({
url: '/files/ajax_lg.php',
method: 'POST',
data: {"check_user": checkPin},
async: false
});
А как это реализовать в PHP?
Пример кода старый, но не суть.
В скрипте /files/ajax_lg.php запускайте другой скрипт, например, как в примере через exec не забывая в конце команде добавить > /dev/null 2>&1 & — это запустить скрипт в фоне и вызов /files/ajax_lg.php буквально сразу вернет «результат» и ничего ждать не нужно.
На стороне клиента, в браузере
// Выполняете запрос без перезагрузки страницы
$.ajax({
url: '/files/run_task.php',
method: 'POST',
data: {"check_user": checkPin},
async: false
});
Так, например, может выглядить ваш скрипт в файле /files/run_task.php
Где /files/run_task.php какой-то скрипт, который выполняется продолжительное время и который вы запускаете в фоне.
// /files/run_task.php
$script = APPLICATION_PATH . '/files/ajax_lg.php';
$command = 'php ' . $script;
$command .= ' > /dev/null 2>&1 &';
exec($command, $output, $status);
Ну даже в таком случае будет правильно, если вызов /files/ajax_lg.php будет что-то возвращать. Потому что до вызова exec() могут быть ошибки...
Суть в том, и вы это поняли, чтобы веб-сервер «сразу» отправил обратно ответ на запрос (/files/ajax_lg.php), веб-серверу «приходится ждать» полностью выполнения скрипта (или пока не произойдет ошибка). Чтобы не дожиться выполнения какого-то скрипта — его можно запустить в фоне. Обрабатывать ошибки, если они возникают в таком скрипте — уже другая история...
Продвижение своими сайтами как стратегия роста и независимости