J'ai un fichier html qui accepte et envoie le login et le mot de passe. Il est envoyé au fichier login.cgi.Pourquoi mon script CGI se plaint-il "Impossible de trouver CGI/Session.pm dans @INC"?
**
- fichier 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>
**
- .pl
**
#!/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
}
Après avoir démarré le serveur apache, j'ouvre la page et entrez le nom d'utilisateur et mot de passe démo démo et cliquez sur le bouton.
je reçois l'erreur suivante:
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.
S'il vous plaît, aidez-moi à résoudre cette erreur.
**
- EDIT 1
**
Problème résolu après l'installation de CGI-session-4.42.
Merci à vous tous pour votre aide.
Évidemment, vous n'avez pas installé CGI :: Session. Essayez 'cpan' depuis la ligne de commande et lancez' install CGI :: Session' dans le shell d'ouverture ... – Boldewyn
J'ai essayé d'installer cpan, mais partout où la connexion ne se fait pas. En outre, je reçois ce qui suit à la fin: N'a pas pu extraire les modules/03modlist.data.gz Va écrire à /root/.cpan/Metadata Attention: Impossible d'installer Bundle :: CPAN, je ne sais pas ce que c'est . Essayez la commande i/Bundle :: CPAN/ pour trouver des objets avec des identifiants correspondants. CPAN> i/Bundle :: CPAN/ Aucun objet trouvé de tout type pour l'argument/Bundle :: CPAN/ CPAN>/Bundle :: CPAN/ Impossible de localiser la méthode objet "CPAN /" via paquet "/Bundle "(peut-être avez-vous oublié de charger"/Bundle "?) À /usr/lib/perl5/5.8.8/CPAN.pm ligne 201, ligne 3. –
MalarN