我正在使用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传递的值。我的代码有什么问题?
答案 0 :(得分:1)
问题在于您的行
echo shell_exec('program.exe $number');
因为这实际上会将带有“$ number”的program.exe作为值作为文本调用。你需要使用双引号,例如
echo shell_exec("program.exe $number");