Can't call method "param" on an undefined value
Bonjour,
Je suis débutant en perl et on m'a donné comme boulot de refaire marcher une appli CGI/Perl et je rencontre un problème bloquant. :?
Ma conf :
Redhat 9
Apache 2.0.40
perl 5.8.0
mod_perl 1.99
Mon problème est que j'ai ce message suivant quand je passe d'une page à une autre en passant des paramètres par l'url.
Avez vous une piste ?
Merci d'avance
Seb
Le message :
Citation:
Le serveur a èté victime d'une erreur interne et n'a pas été capable de faire aboutir votre requête.
Message d'erreur:
Can't call method "param" on an undefined value at /var/www/perl/procedure_list.pl line 23.
Si j'insiste en faisant des refresh, des fois ca passe et des fois non :( :(
Voici le debut du code de procedure_list.pl
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#!/usr/bin/perl
use Apache::compat;
use CGI;
use CGI "escapeHTML";
use DBI;
use strict; # bien penser a utiliser "my" pour declarer les variables
use DocBaseConfig;
use DocBaseConfig2;
use vars ('$dbh', '$query','$nodatabaseconnect');
my ($sth, $rc);
require '/var/www/perl/config.pl';#cgi + info sesion
require '/var/www/perl/sub_keycount.pl';#filtres sur procedures
$nodatabaseconnect = 1;
#traitement de l url
my $filter = $query->param('filter_name');
my $planif_id = $query->param('planif_id');
my $submit_button_pressed = $query->param('submit_button');
my $document_id = $query->param('document_id');
my $match_string = $query->param('matching');
my $active_filter;
my $active_document=0;
my $active_planif=0; |
voici le debut du code de config.pl :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
use strict;
use CGI;
use CGI "escapeHTML";
use CGI::Session;
use File::Basename;
use Date::Format;
use vars ('$dbh','$query','$dontchecklogin','$login','$nodatabaseconnect','$session');
$query = new CGI;
$session = new CGI::Session('driver:File', scalar $query->cookie(CGI::Session->name()), {'Directory'=>'/var/www/session'});
$session->expire('+24h');
my $cookiepath = $ENV{SCRIPT_NAME};
$cookiepath =~ s/[^/]+$;
print 'Set-Cookie: '.CGI::Session->name().
'='.$session->id().'; path='.$cookiepath.'; expires='.
time2str('%a, %d-%b-%Y %H:%M:%S %Z', $session->expire() + time, 'GMT')."\n";
if(!defined $dontchecklogin){
$login = $session->param('login');
if(!defined $login){
print <<'EOT';
Content-Type: text/html; charset=ISO-8859-1 |