0

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です。ちなみにこれはローカルで実行しているので、セキュリティ上の問題はありません。プログラムは、入力として渡された数値を2乗するように単純にコーディングされています。cmdでは完全に正常に動作します。$ numberをエコーすると、jQueryを使用して渡した値が正しく表示されます。私のコードの問題は何ですか?

4

1 に答える 1

1

問題はあなたの行です

echo shell_exec('program.exe $number'); 

つまり、これは実際には「$num​​ber」をテキストとして値として program.exe を呼び出します。たとえば、二重引用符を使用する必要があります

echo shell_exec("program.exe $number"); 
于 2012-07-03T09:47:50.477 に答える