我有一個html文件,它將接受併發送登錄名和密碼。它被髮送到文件login.cgi。爲什麼我的CGI腳本抱怨「在@INC中找不到CGI/Session.pm」?
**
- HTML文件
**
<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>
**
- 特等
**
#!/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
}
啓動Apache後,我打開網頁,輸入用戶名作爲演示和密碼作爲演示,並單擊按鈕。
我得到以下錯誤:
Software error:
Can't locate CGI/Session.pm in @INC (@INC contains: /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 line 6. BEGIN failed--compilation aborted at /var/www/cgi-bin/login.pl line 6.
For help, please send mail to the webmaster ([email protected]), giving this error message and the time and date of the error.
請幫我解決這個錯誤。安裝CGI-會話4.42後
**
- 編輯1
**
問題解決。
感謝大家,感謝您的幫助。
顯然你沒有安裝CGI :: Session。從命令行嘗試'cpan'並在開始的shell中運行'install CGI :: Session' ... – Boldewyn 2010-02-08 09:51:05
我試圖安裝cpan,但是每個連接都沒有發生。另外,我在最後得到以下內容: 無法獲取模塊/ 03modlist.data.gz 要寫入/root/.cpan/Metadata 警告:無法安裝Bundle :: CPAN,不知道它是什麼。 嘗試命令 i/Bundle :: CPAN/ 查找具有匹配標識符的對象。 CPAN> I /捆綁:: CPAN/ 未找到的任何類型的用於參數/捆綁:: CPAN/ CPAN對象> /捆綁:: CPAN/ 無法找到對象的方法 「CPAN /」 通過包「/Bundle「(也許你忘了加載」/ Bundle「?)在/usr/lib/perl5/5.8.8/CPAN.pm 201行,第3行。 –
MalarN
2010-02-08 10:41:25