webForumDet fria alternativet

Uteblivna variabler i eko

6 svar · 593 visningar · startad av Nugget

NuggetMedlem sedan apr. 200622 inlägg
#1

Tjenixen! :moose

Jag håller på att läsa en bok om HTML och har nu kommit till en avdelning om CGI-skript. I den boken visas ett exempel på hur man kan skicka tillbaka variabler från ett formulär till web-läsaren (som ett sätt att eka dem m a o). Mitt problem består i att inga variabler dyker upp i web-läsaren (Opera 8.53). Kanske är boken inte någon färsking, men den är allt jag har för till fället. Min fråga är: Har jag skrivit fel någonstans, eller har perl gått vidare? Hur ska det isåfall uttryckas? Jag vet inte vilken version av perl boken anv. Själv använder jag perl 5.8.817. Nedan följer mitt skript.

#!C://Perl/bin/perl5.8.8
#require ("cgi-lib.pl");
#&ReadParse; Dessa 2 rader har jag bytt ut mot de 2 som följer
use CGI;
CGI::ReadParse();

print "Content-Type: text/html\n\n";
print "<HTML><HEAD><TITLE>";
print "Variable Listing";
print "</TITLE></HEAD><BODY>";
print "<H1>Variables Passed by Form</H1>";
#print &PrintVariables(%in); Denna rad har bytts ut mot nästa.
print CGI::PrintVariables(%in);
print "</BODY></HTML>";

Variablerna skickas med:
FORM ACTION="http://localhost:8080/cgi-bin/Rada_Variabler.cgi" METHOD="POST"

Tacksam för svar

Nugget

CssonMedlem sedan feb. 2000438 inlägg
#2

Det är bättre att använda CGI.pm's egna funktioner än cgi-lib-kompatibla:

#!/usr/bin/perl

use strict;
use CGI;

my $q = CGI->new();

my @params = $q->param();

print $q->header('text/plain');

for $param (0..$#params) {
    print "$params[ $param ]: ". $q->param($params[ $param ]) ."\n";
}

Oftast vet man ju vilka parametrar man vill ha reda på: $q->param('parameternamn')

Böcker om html är oftast inga höjdare när det kommer till Perlavsnitten.

NuggetMedlem sedan apr. 200622 inlägg
#3

Tack för förslaget, men när jag försöker köra det istället för det gamla, så får jag ett serverfel 500.

Ps Det verkar som att databöcker i allmänhet är lite sunkiga Ds

CssonMedlem sedan feb. 2000438 inlägg
#4

Har du bytt första raden till din sökväg till Perl?

NuggetMedlem sedan apr. 200622 inlägg
#5

Jepp.

CssonMedlem sedan feb. 2000438 inlägg
#6

Det här ska nog funka bättre :).

#!/usr/bin/perl

use strict;
use CGI;

my $q = CGI->new();

my @params = $q->param();

print $q->header('text/plain');

for my $param (0..$#params) {
    print "$params[ $param ]: ". $q->param($params[ $param ]) ."\n";
}
NuggetMedlem sedan apr. 200622 inlägg
#7

Tack!!! Det funkade utmärkt! :e

Nugget

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)