1

私はここで少し混乱しています。

Windows Server 2008 R1 + IIS6 + PHP5.3.10

小さなローカル mssql データベースに接続し、検索を実行して結果を変数に入れる PHP スクリプトがあります。データベースには 6 つの列がありますが、渡す価値があるのはそのうちの 4 つだけです。

このサーバーにはコンソール python プログラム (2.7 フレーバー) があります。4 つの引数 (対象の電子メール アドレス、件名、本文、およびキー (キーは 64 文字の英数字の文字列)) を取ります。次に、この python プログラムは、これらすべてを HTML テンプレート (プログラム自体で定義されています) に入れ、それを電子メールで送信します。目標。

OK - これらは両方とも個別に機能します! 今楽しい部分。PHP スクリプトと同じディレクトリにあるこの python プログラムを起動し、それに 4 つの引数/パラメータを渡すことはできますか? 引数/パラメータにはスペースが含まれる場合があります。

4

2 に答える 2

1

Execを探しています。コンソールでコマンドを実行し、出力の最後の行を返します。すべての出力が必要な場合は、オプションの 2 番目の引数でそれが得られます。

Erty が言うように、入力内容をサニタイズします。ユーザー提供のデータをコマンドラインに直接渡さないでください。

于 2012-08-10T20:53:16.363 に答える
1

おそらく、Python スクリプトを使用exec()または実行したいと思うでしょう。shell_exec()また、必要に応じてescapeshellarg()andescapeshellcmd()を使用して、入力をサニタイズします。これは次のようになります。

$escaped_cmd = escapeshellcmd('nameofexecutable.exe para1 para2 para3');
exec($escaped_cmd);

もちろん、実行可能ファイルを実行するには適切な権限が必要です。

于 2012-08-10T20:55:30.263 に答える