2

可能重复:
HTML 表单 POST 到 python 脚本?

所以我有一个使用命令行参数的 perl 脚本,例如:

./gen_cards_md5.pl --num_cards=1000 --num_seeds=10

我正在尝试构建一个 php 网页来调用上述脚本并将其传递给表单上的参数输入并提交,这大致是我所拥有的:

echo <<<_END
<html>
    <head>
        <title>Generate Card Numbers Test</title>
    </head>
    <body>
    Number of Cards: $num_cards<br />
    Number of Seeds: $num_seeds<br />
    <form method="post" action="gen_cards_md5.pl">
        Enter number of Cards to generate: <input type="text" name="num_cards" /> <br />
        Enter Number of Seeds: <input type="text" name="num_seeds" /> <br />
        <input type="submit" name="params" value="params"/>
    </form>
    </body>
</html>
_END;

所以你可能会猜到我要去哪里,php正在调用perl,但它没有传递命令行参数。有没有一种简单的方法来查看什么(如果有任何东西被传递),或者有人足够了解告诉我我需要如何“格式化”帖子以将其放入 Perl 脚本?请注意,我只是在学习 Python,实际上我什至不是 php 和 perl 的黑客,所以我真的很想知道如何查看正在发生的事情并能够回答我自己的问题,但是为了节省时间,我只需要使用这个大的 honkin 'perl 脚本并让它从输入通过我的 HTML 页面运行。既然我已经说过了,我在想自己是否需要将其设为 .php?我只是通过不将 HTML 直接转换为 Perl 使事情变得更复杂吗?我离题了,重申一下;给定一个接受命令行参数的工作 perl 脚本,我如何通过 Web 界面传递它在命令行中所期望的参数?蒂亚!J.P

4

1 回答 1

1
<form method="post" action="somephpfile.php">

.

if (count($_POST) > 0){
     $num_cards = (isset($_POST['num_cards'])) ? (int)$_POST['num_cards'] : false;
     $num_seeds = (isset($_POST['num_seeds'])) ? (int)$_POST['num_seeds'] : false;
     if($num_cards !== false && $num_seeds !== false){
        exec("./gen_cards_md5.pl --num_cards={$num_cards} --num_seeds={$num_seeds}", $outputArray);
     }else{
         die('Number of cards or number of seeds not provided.');
     }
}
于 2012-11-15T23:06:26.837 回答