0

我有一个 bash 脚本,它绑定到一些我想在网页中执行的 python 脚本,并将它创建的文件放到页面上。目前我根本无法执行该脚本(多次测试该脚本以确保它确实有效),而且我似乎无法找到我的错误在哪里。第一组代码来自我位于/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>

第二个脚本是页面('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 回答