webForumDet fria alternativet
Logga in / Bli medlem

Uteblivna variabler i eko

HTML & CSS

6 svar · 600 visningar · startad av Nugget

Medlem sedan apr. 200622 inlägg
Trådstart#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

Medlem 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.

Medlem 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

Medlem sedan feb. 2000438 inlägg
#4

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

Medlem sedan apr. 200622 inlägg
#5

Jepp.

Medlem 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";
}
Medlem sedan apr. 200622 inlägg
#7

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

Nugget

261 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)