用HTML / PHP执行的shell脚本

时间:2015-09-05 15:38:50

标签: php html shell arguments

我有一些HTML / PHP的基本知识。我面临的情况令人沮丧。我想要完成的是在网页上创建一个简单的搜索框,当用户输入输入并单击提交然后执行我的shell脚本然后在php页面上显示。当我单击“提交”以确保PHP exec shell命令正常工作时,我已成功运行其他命令。 我将在网页上看到输出。不是我的剧本。我的脚本使用参数传递并通过命令行工作。以下是我的脚本,HTML和PHP页面的详细信息。另外,我正在使用FreeBSD 10盒子。

我的剧本

命令行 - $ csearch“参数”

#!/bin/sh
grep -ir -B 1 -A 4 "$*" /usr/local/var/rancid/CiscoDevices/configs

我的HTML页面

<html>
<body>
<form method="POST" action="csearch.php">
    <input type="text" name="searchText">
    <input type="submit" value="Search">
</form>
</body>
</html>

我的PHP页面

<?php
$searchText=$_POST['$searchText'];
?>

<html>
<?php

$output = shell_exec('/usr/local/bin/csearch $searchText');
echo "<pre>$output</pre>";

?>
</html>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

shell_exec('/usr/local/bin/csearch $searchText');这不是你所期望的那样:

<?php

$searchText = 'foobar';
$cmd = '/usr/local/bin/csearch $searchText';
echo $cmd;

?>

输出:

  

/ usr / local / bin / csearch $ searchText

将字符串更改为使用双引号,$ searchText实际上就是您想要的字符:

$output = shell_exec("/usr/local/bin/csearch $searchText");

More info on the use of quotes in PHP.

正如@ uri2x在评论中暗示:

$searchText=$_POST['$searchText'];因类似原因应更改为$searchText=$_POST['searchText'];