如何从 apache web 服务器中的 perl 脚本 运行 获取用户输入?
How to obtain user input from perl script running in apache web server?
我有一个 raspberry pi 运行 最新的 Raspbian 安装了 apache2 的图像。我的 /usr/lib/cgi-bin 目录中有一个 perl 脚本,我在没有互联网访问权限的本地临时网络上使用它。
这是我的 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 文件中。如果我可以编写一个简单的按钮,按下该按钮后,可以在服务器端执行一个简单的命令,我可以完成剩下的工作。
这是一个脚本,可让您开始使用 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
行上的“#”。如果脚本仍然 运行s 则保持原样,这样您将在浏览器中收到一些错误消息。您还需要 运行 此命令来查找错误:
tail -f /var/log/apache2/error.log
我有一个 raspberry pi 运行 最新的 Raspbian 安装了 apache2 的图像。我的 /usr/lib/cgi-bin 目录中有一个 perl 脚本,我在没有互联网访问权限的本地临时网络上使用它。
这是我的 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 文件中。如果我可以编写一个简单的按钮,按下该按钮后,可以在服务器端执行一个简单的命令,我可以完成剩下的工作。
这是一个脚本,可让您开始使用 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
行上的“#”。如果脚本仍然 运行s 则保持原样,这样您将在浏览器中收到一些错误消息。您还需要 运行 此命令来查找错误:
tail -f /var/log/apache2/error.log