/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
parametre som argument??
Fra : John Doe


Dato : 13-02-01 18:02

Jeg har et script som på et tidspunkt overfører nogle parametre i adressen
efter test.cgi? men de overførte parametre bliver ikke brugt i scriptet
igen. Lad mig give eksempler fra scriptet:

#!/usr/local/bin/perl

require 'subs.cgi'; #indeholder subrutiner

print "Content-type: text/html\n\n";
$q = $ENV{'QUERY_STRING'};
$| = 1;

&get_input; #modtager input og placerer dem i hash $IN{'keys'}

if (($ENV{'CONTENT_LENGTH'} eq "") || ($IN{'action'} eq 'login')){
&print_login; #viser login screen
}elsif($IN{'action'} eq 'let_in'){
&login; #logger brugeren ind og udfører nogle subrutiner, opretter 2
frame
}elsif($IN{'action'} eq 'show'){
&print_userinfo;
}elsif($IN{'action'} eq 'submit'){
&user_submit; #nogle <input> felter hvor brugeren indtaster nogle data
som skal vises i den anden frame
}
exit;

det er meningen at når man skriver test.cgi eller test.cgi?action=login skal
login skærmen vises. Det virker uden problem. I login skærmen hentes bruger
navn og "action" som er "let_in". Altså:

<FORM ACTION=test.cgi METHOD=POST>
<b>Bruger Navn</b> <INPUT TYPE=TEXT SIZE=16 NAME="bruger">
<INPUT TYPE=HIDDEN NAME="action" VALUE="let_in">

dette virker også. Når scriptet modtager ($IN{'action'} eq "let_in") laver
det to frame bestående af "userinfo" og "user submit". en af framene ser
sådan ud:

<frame name="submit" src="test.cgi?action=submit&bruger=$IN{'bruger'}">

der åbnes 2 frames, men istedet for at behandle action=submit og
bruger=$IN{'bruger'} kommer der login screen. Det ser ud til at være at
scriptet ikke modtager "test.cgi?action=submit&bruger=$IN{'bruger'}", men
behandler det som "$ENV{'CONTENT_LENGTH'} eq "". Hvad er det jeg gør
forkert??



 
 
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408915
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste