我有一个html文件,它将接受并发送登录名和密码.它被发送到login.cgi文件.
**
**
<form method="POST" action="login.pl">
<table >
<tr>
<td>Username </td>
<td bgcolor="lightgrey"><input type="text" name="usr" size="20"></td>
</tr>
<tr>
<td>Password </td>
<td bgcolor="lightgrey"><input type="password" name="pwd" size="20"></td>
</tr>
<tr>
<td><input type="submit" id ="Login" value="Login" name="login"/> </td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
**
**
#!/usr/bin/perl
# login.pl
use CGI;
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
use CGI::Session ( '-ip_match' );
$q = new CGI;
$usr = $q->param('usr');
$pwd = $q->param('pwd');
if($usr ne '')
{
# process the form
if($usr eq "demo" and $pwd eq "demo")
{
$session = new CGI::Session();
print $session->header(-location=>'home.html');
}
else
{
print $q->header(-type=>"text/html",-location=>"LoginHtml.html");
}
}
elsif($q->param('action') eq 'logout')
{
$session = CGI::Session->load() or die CGI::Session->errstr;
$session->delete();
print $session->header(-location=>'LoginHtml.html');
}
else
{
print $q->header;
print <
<form method="post">
Username: <input type="text" name="usr">
Password: <input type="password" name="pwd">
<input type="submit">
</form>
HTML
}
Run Code Online (Sandbox Code Playgroud)
启动apache服务器后,我打开页面并输入用户名作为demo和密码作为demo,然后单击按钮.
我收到以下错误:
软件错误:
无法在@INC中找到CGI/Session.pm(@INC包含:/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/ i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5/usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi/usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8/usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5/usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/ i386-linux-thread-multi /usr/lib/perl5/5.8.8.)at /var/www/cgi-bin/login.pl第6行.BEGIN失败 - 编译在/ var/www/cgi-bin中止/login.pl第6行.
如需帮助,请发送邮件给网站管理员(root @ localhost),提供此错误消息以及错误的时间和日期.
请帮我解决这个错误.
**
**
安装CGI-Session-4.42后问题已解决.
感谢大家,感谢您的帮助.
您需要安装CGI :: Session.最好的方法是使用您的OS包管理器.在Fedora/Redhat或类似的情况下yum install perl-CGI-Session.在Debian中,apt-get install libcgi-session-perl.如果要使用cpan shell进行安装,请在整个日志中粘贴错误并在此处发布链接.
| 归档时间: |
|
| 查看次数: |
18186 次 |
| 最近记录: |