0

Webページ内で実行したいいくつかのpythonスクリプトに関連付けられたbashスクリプトがあり、作成したファイルをページにcatします。現在、スクリプトをまったく実行できず (スクリプトが実際に機能していることを確認するためにスクリプトを複数回テストしました)、エラーの場所を見つけることができないようです。最初のコード セットは、/var/www にある「dashboard.php」ファイルからのものです。スクリプトのパーミッションを 777 に変更し、実行可能にしました。

<html>
<body>

<form action="welcome.php" method="post">
    IP/CIDR Input: <input type="text" name="cidriptext" />
    Single IP: <input type="checkbox" name="singlech" value="single" /> 
    CIDR Range: <input type="checkbox" name="cidrch" value="cidr" />    
<input type="submit" value="Submit">
</form>

<form action="welcome.php" method="post">
    List of IP's: <input type="text" name="listname" />
<input type="submit" value="Submit">
</form>

</body>
</html>

この 2 番目のスクリプトは、フォームからの入力でスクリプトを実行するために到達するページ ('welcome.php') です。この時点で$listname_text、 が適切に動作するとは思いませんが、ボックスがチェックされていないときに「不正な入力」エラーが発生し、最後に「テスト」出力が発生し、バックエンドでファイルが作成されることは予想されます。

<?php
    $ipcidr_text = $_POST['cidriptext'];
    $listname_text = $_POST['listname'];

    if !(empty($listname_text):
        shell_exec('/var/www/getStarted -l $ipcidr_text');
        $output0 = shell_exec('echo "List of IP's"');
        echo "<pre>$output0</pre>";

    elseif (isset($_POST['cidrch'])):
        shell_exec('/var/www/getStarted -c $ipcidr_text');
        $output1 = shell_exec('echo "CIDR Range"');
        echo "<pre>$output1</pre>";

    elseif (isset($_POST['singlech'])):
        shell_exec('/var/www/getStarted -s $ipcidr_text');
        $output2 = shell_exec('echo "Single IP"');
        echo "<pre>$output2</pre>";

    else:
        $output = shell_exec('echo "Incorrect input"');
        echo "<pre>$output</pre>"; 

    endif;

    $testing = shell_exec('echo "testing"');
    echo "<pre>$testing</pre>";

?>

PHP は動作しています。基本的なスクリプトを実行できます。

<?php
    $output = shell_exec('echo "Incorrect"');
    echo "<pre>$output</pre>";
?>

さらに情報が必要な場合は、お知らせください。どんな助けにも感謝します!

4

1 に答える 1

1

私はshell_exec()過去に問題を抱えていて、代わりに寄りかかる傾向があり、コマンドをカプセル化する代わりにsystem()試みました。スクリプトの呼び出し方法を変更する必要がある場合もあります。"'

から:

/var/www/getStarted

(具体的には Python インタープリターを呼び出します):

/usr/bin/python /var/www/getStarted
于 2013-09-06T19:58:33.123 に答える