cpan install CGI我在执行时得到以下结果Ubuntu 10.4。
Test Summary Report
-------------------
t/tmpdir.t (Wstat: 0 Tests: 9 Failed: 0)
TODO passed: 3, 6, 8
t/url.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: No plan found in TAP output
Files=39, Tests=695, 2 wallclock secs ( 0.45 usr 0.11 sys + 1.19 cusr 0.21 csys = 1.96 CPU)
Result: FAIL
Failed 1/39 test programs. 0/695 subtests failed.
make: *** [test_dynamic] Error 255
MARKSTOS/CGI.pm-3.55.tar.gz
/usr/bin/make test -- NOT OK …Run Code Online (Sandbox Code Playgroud) 我正在尝试用 Perl 编写一个脚本,允许用户上传文件。目前,它说它正在工作,但实际上并没有上传文件!
这是代码:
#!/usr/bin/perl
use CGI;
my $cgi = new CGI;
my $dir = 'sub';
my $file = $cgi->param('file');
$file=~m/^.*(\\|\/)(.*)/;
# strip the remote path and keep the filename
my $name = $2;
open(LOCAL, ">$dir/$name") or print 'error';
while(<$file>) {
print LOCAL $_;
}
print $cgi->header();
print $dir/$name;
print "$file has been successfully uploaded... thank you.\n";enter code here
Run Code Online (Sandbox Code Playgroud) 我创建了一个简单的 HTML,其中包含以下表单:
<form action="WEB-INF/cgi/run.pl" method="post">
<table border="0" cellspacing="0">
<tbody>
<tr><th align="center" bgcolor="F7F5F2"> <p class="normal">Submission Form</p> </th></tr>
<tr><td align="center" bgcolor="F7F5F2"> <p class="normal">Insert your text below:</p> </td></tr>
<tr><td><textarea wrap="virtual" name="seq_data" rows="15" cols="80"></textarea></td></tr>
</tbody></table>
or upload a file : <input type="file" name="file" size="29" border="0"><br><br>
<input class="normalc" value="Submit Query" type="submit">
<input class="normalc" value="Clear Form" type="reset"><p></p>
</form>
Run Code Online (Sandbox Code Playgroud)
我需要将表单中的数据作为输入传递给 perl 脚本 (run.pl)。
在搜索互联网时,我读到:1)我需要通过 apache tomcat 测试我的网站。我已经安装了 apache 7.0 版,并通过删除此 servlet 周围的 XML 注释来修改 Tomcat 7.0/conf/web.xml 文件:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value> …Run Code Online (Sandbox Code Playgroud) Python 新手。
我正在尝试使用 Python 为我的作品集网站制作联系表单。该表单有 4 个输入字段 - 名字、姓氏、电子邮件和消息。我的网站由 hostgator.com 托管。
我希望表单在提交时将 4 个字段中提供的信息发送到我指定的电子邮件。
经过大量搜索后,我看到了很多 Django tuts,但我只想要一个使用 Python 的简单表单。
任何帮助将不胜感激!——迈克·罗西
#!/usr/bin/python
# Import modules from CGI handling
import cgi, cgitb, smtplib
cgitb.enable()
# Create instance of FieldStorage
form = cgi.FieldStorage()
print("")
# Get data from fields
first_name = form.getvalue("first_name")
last_name = form.getvalue("last_name")
email = form.getvalue("email")
message = form.getvalue("message")
to = "mike.jacob.rossi@gmail.com"
subject = "Comment from MikeTheDev.com"
mfrom msg['To']
to msg['Subject']
form['subject'].value
print("Thanks for contacting me! Get back to you soon,%s. …Run Code Online (Sandbox Code Playgroud) 我正在尝试对 Perl 中的 Web 应用程序进行 dockerize,最后它通过 Apache 与 MariaDB 连接。我已经有一个数据库设置。我的容器正在运行,但问题出在 perl 脚本上;他们没有跑步。另外,一个名为 CGI PLUS 的模块在安装时出现问题。有人可以看看下面的文字,让我知道这里可能存在什么问题,并分享解决方案来纠正它吗?
################################################################
#Perl modules
Install the required Perl modules.
cpan CGI
cpan CGI::Plus
cpan CGI::Session
cpan DBI
cpan Crypt::Eksblowfish::Bcrypt
cpan File::Basename
cpan Auth::Yubikey_WebClient
cpan Tie::IxHash
cpan Apache::Solr
cpan HTML::Entities
cpan WWW::CSRF
cpan Crypt::Random
cpan LWP::Simple
cpan Text::NSP::Measures::2D::Fisher::twotailed
cpan XML::Simple
cpan Statistics::R
cpan Cache::FileCache
cpan Digest::MD5
cpan Date::Calc
cpan Data::Dumper
cpan Text::ParseWords
cpan Cwd
cpan Log::Log4perl
#Tests of the module XML:DOM::XPath fail because they use a deprecated …Run Code Online (Sandbox Code Playgroud) 我的大学不支持POST cgi方法(我知道,这很疯狂),我希望能够建立一个用户可以拥有用户名和密码并安全登录的系统.这甚至可能吗?
如果不是,你会怎么用POST做?只是出于好奇.
干杯!
我对Perl/CGI有点新,我来自Java/JSP背景.
我正在编写一个小型原型,需要将一些"重"数据(~200MB)加载到数据结构中.
现在,我显然希望避免在每次请求时加载数据.到目前为止,我设法使用一个"静态"变量(一个封装在{}块中),但这似乎适用于一些请求.在一些不活动时间之后,下一个请求将不得不再次加载数据.
从我的JSP经验来看,这似乎是一种会话变量,在会话到期之前仍然可用.
如何设置"全局"或"应用程序"变量?不确定这些术语是否适用于CGI ...是否可以让应用程序的所有会话共享一个变量?
顺便说一句,我现在只是使用"使用CGI qw(:标准)".
我正在编写一个需要使用模块CGI :: Session ver 4.35 的Web应用程序.从客户端收到带有SESSIONID字符串的请求
$sid = $cgi->cookie("CGISESSID") || $cgi->param("CGISESSID") || undef;
Run Code Online (Sandbox Code Playgroud)
它尝试通过传递$ sid作为参数来重新创建会话
$session = new CGI::Session($sid) or ($logger->error(CGI::Session->errstr) and die);
Run Code Online (Sandbox Code Playgroud)
如果有与SID创建一个会话,$session->id并且$sid被假定是相同的,但事实是这是不是.
这是我创建一个全新会话的语句
$session = new CGI::Session("id:md5", undef, {Directory=>$SESSION_DIR})
or ($logger->error(CGI::Session->errstr) and die);
Run Code Online (Sandbox Code Playgroud)
这里出了什么问题?我该如何正确使用模块CGI :: Session?
#!C:\xampp\apache\bin\httpd.exe
$command=`perl -v`;
$title = "Perl Version";
print "Content-type: text/html\\n\\n";
print "<html><head><title>$title</title></head><body>";
print "
<h1>$title</h1>
\n";
print $command;
print "</body></html>";
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
脚本头的过早结束:version.cgi
我试图运行ssh,mkdir从一个Perl CGI脚本.它不起作用.但在正常的Perl脚本中,它运行正常.任何人都可以告诉我如何在Perl CGI脚本中运行命令吗?