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 :
Si j'insiste en faisant des refresh, des fois ca passe et des fois nonLe 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.![]()
![]()
Voici le debut du code de procedure_list.pl
voici le debut du code de config.pl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager