У меня есть PHP-скрипт, который вызывает exec()
.У меня были проблемы в течение всего дня, когда какой-то код вызывал один и тот же скрипт, а другой нет (exec () возвращает код ошибки 127).
Наконец-то я понял, что неработающий код - это код, который вызывается из jQuery на моей веб-странице:
$('#next_button').click(function(event) {
$.get('download_forms.php', function(data) {
alert(data);
});
});
Однако, если я наберу URL для download_forms.php
в адресную строку моего браузера, тогда exec () будет выполняться правильно.У меня есть попытки запустить другие скрипты, которые вызывают exec () из jQuery для тестирования, и все они терпят неудачу, но работают, если набраны в адресной строке.
Я не понимаю, почему это будет проблемой.Вне зависимости от того, введу ли я URL-адрес в адресную строку Firefox или нажму кнопку на моей веб-странице, будет сделан HTTP-запрос.
Кто-нибудь знает, в чем может быть разница?
Примечание: я пробовал разные команды в exec (), и все они терпят неудачу в моем jQuery (обратите внимание на весь остальной код PHP)работает нормально) но работает, когда адрес скрипта вводится прямо в адресную строку.
Большое спасибо
Обновление
Это мой download_forms.phpкод.Первоначально exec () был только для того, чтобы увидеть, работает ли exec () вообще.Как и выше, он работает правильно только при вводе прямо в адресную строку.
include ('inc/session.inc.php');
require_once('Downloader.php');
exec('id', $output, $r);
echo var_dump($output);
echo($r);
try {
$downloader = new Downloader();
$saveMessages = $downloader->saveToDatabase();
// exec() in the combineAndDownloadForms() method
$downloadMessages = $downloader->combineAndDownloadForms();
} catch(Exception $e) {
echo $e->getMessage();
}
Дальнейшее обновление
Я сделал гиперссылку с моей веб-страницы на download_forms.страница php (то есть <a>
), но exec () по-прежнему не выполняется.По крайней мере, я знаю, что это не имеет ничего общего с AJAX.