我正在使用jQuery执行AJAX请求,如下所示:
$.get({
url: 'run_program.php',
data: 'action=run&number=' + $('#number').val(),
success: function (j) {
alert(j);
}
runprogram.php是这样的:
<?php
if(isset($_GET['action']) && !empty($_GET['action'])) {
run($_GET['number']);
}
function run($number) {
echo shell_exec('program.exe $number');
}
?>
我从服务器得到的响应始终为 0。顺便说一下,我在本地运行它,所以没有安全问题。该程序被简单地编码为对作为输入传入的数字进行平方。它在cmd中工作得很好。当我回显$number时,它正确地给出了我使用 jQuery 传入的值。我的代码中有什么问题?
问题出在你的行上
echo shell_exec('program.exe $number');
因为这实际上将调用程序.exe将"$number"作为文本作为值。您需要使用双引号,例如
echo shell_exec("program.exe $number");