【发布时间】:2011-07-28 19:09:18
【问题描述】:
在 PERL 中工作,我正在尝试使用从 html 表单解析的变量来运行 unix 命令行。以下是 HTML 表单:
<?PHP
if ($_REQUEST['action'] == "submit") {
$var1 = $_REQUEST['var1'];
$var2 = $_REQUEST['var2'];
** working toward executing script "/usr/lib/cgi-bin/test.pl" with the above variables **
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test HTML Submit to CGI</title>
</head>
<body>
<form name-"Submit" id="Submit" method="POST">
<input type="hidden" name="action" value="submit" />
Input Variable 1<br /><br />
<input type="text" name="var1"></input><br /><br />
Input Variable 2<br /><br />
<input type="text" name="var2"></input><br /><br />
<input type="submit" value="Execute script" />
</form>
</body>
</html>
我正在寻找正确的语法来使用这些变量通过 CGI 脚本提交 unix 命令行。我有一个带有以下内容的 test.pl:
use CGI;
$parse = new CGI;
$var1 = $parse->param('var1');
$var2 = $parse->param('var2');
if ($var1) {
if ($var2) {
echo "$var1" | UnixCommand --trigger +$var2
}
}
exit;
我只想在一些验证之后从提交的表单执行脚本我将写入 PHP 文件的顶部。我试图在 CGI 中执行的 unix 命令要求 var1 周围的引号和 $var2 之前的 + 都是文字,我认为这需要在 CGI 中进行某种附加或转义以使文本正确流动。我需要使用某种转义变量来让字符串在命令行中正确执行吗?
如果您能提供任何帮助,我们将不胜感激,
银虎
【问题讨论】: