Имеет ли PHP-скрипт, выполняемый с помощью exec () из конечной точки, доступной через Интернет, доступ к $ _POST? - PullRequest
1 голос
/ 29 апреля 2011

У меня есть конечная точка веб-службы, которая должна вызывать PHP-скрипт CLI другого разработчика в ходе его выполнения.Псевдокод выглядит так:

function startCLI($input, $output){

  $cmd = escapeshellarg('php bin/startcli.php $input $output');
  exec($cmd, $output, $ret);

  if ($output){
    print_r($output[0]);
  }
}

Теперь вы можете спросить: почему бы не передать $_POST['var'] в скрипт clistart.php?

Ну, вы получаете то, за что платите, когда иногда получаете свой унаследованный код из-за рубежа, и время, которое у меня уходит на то, чтобы разобрать их систему и собрать ее вместе, больше, чем время, которое у меня есть.реализовать все решение.

Так что давайте просто оговорим, что я не могу добавить новые переменные в сценарий clistart.php и взять его оттуда.Черт возьми, это академическое упражнение.Имеет ли сценарий CLI, выполняемый из запрошенного в Интернете сценария PHP, доступ к $ _GET или $ _POST для его запуска?

ОБНОВЛЕНИЕ: я пытался добавить оба ключа к $ _ENV и getenv() и putenv(), но результат тот же - я могу обновить среду для текущего сценария и дочернего сценария, который он выполняет, чтобы ВЫПОЛНИТЬ задание, но поскольку задания затем выполняются постоянным процессом, имеющим собственный контекст $ _ENV,не похоже на способ передачи этой переменной в контекст постоянного процесса.

Мне придется либо обратиться к базе данных, либо к файлу, если у кого-то нет другой идеи.

Ответы [ 2 ]

1 голос
/ 29 апреля 2011

$ _ GET и $ _POST являются частью контекста веб-запроса сценариев и не будут доступны в CLI, у него будет собственный контекст.

0 голосов
/ 29 апреля 2011

Не без экспорта содержимого массива в качестве переменных среды - через putenv.

Но почему в любом случае сценарий CLI просматривает переменные HTTP?Скрипт только для CLI даже не смотрит на них.

Или под CLI вы имеете в виду, что он предназначен для работы в качестве скрипта CGI?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...