我有一个覆盆子pi运行最新的Raspbian映像并安装了apache2。我在/ usr / lib / cgi-bin目录中有一个perl脚本,我在没有Internet访问权限的本地ad-hoc网络上使用。
这是我的perl文件:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
$config=`cat /home/pi/Desktop/AutoPi/AutoPi.config`;
print <<"EOF";
<HTML>
<HEAD>
<TITLE>Hello, world!</TITLE>
</HEAD>
<BODY>
<H1>Hello, world!</H1>
<br><br>
</BODY>
</HTML>
EOF
这很好用,我可以使用perl系统命令,例如:
$my_dir=`pwd`;
...并将其传递给用户看到的网页。这很棒。但是,我需要能够让用户单击按钮并执行代码。
我很乐意使用perl,并希望尽可能将所有内容保存在perl文件中。如果我可以编写一个简单的按钮,按下后,可以执行一个简单的命令服务器端,我可以完成剩下的工作。
答案 0 :(得分:2)
这是一个脚本,可以帮助您开始使用CGI.pm从提交的表单中访问参数。
#!/usr/bin/perl
use strict;
use warnings;
use CGI qw(escapeHTML);
#use CGI::Carp qw(fatalsToBrowser);
my $q = CGI->new;
my $text = $q->param('text') || '';
print $q->header('text/html; charset=utf-8');
my $safe_text = escapeHTML($text);
print <<"EOF";
<html>
<head>
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
<div>$safe_text</div>
<form method="post">
<textarea name="text" rows="5" cols="40">$safe_text</textarea><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
EOF
CGI.pm并不是一种真正推荐的构建Web应用程序的方法,但听起来你很开心所以去吧。尝试删除use CGI::Carp
行上的“#”。如果脚本仍然运行,那么请保持这种状态,这样您就会在浏览器中收到一些错误消息。您还需要运行此命令来查找错误:
tail -f /var/log/apache2/error.log