webForumDet fria alternativet

Hur adressera perl-script i html-formulär?

HTML & CSS

6 svar · 599 visningar · startad av sne1

Medlem sedan jan. 200363 inlägg
Frågan#1

HJÄLP!?

Hur är det meningen att man ska adressera ett perl-script i ett html-formulär, när man vill skicka med tre parametrar? Om jag gör det ifrån en browsers adressfält, kan jag få följande...
http://<IP_adress>/cgi-bin/<script_namn>.pl?../inout/infil1.htm+../inout/infil2.htm+../inout/utfil3.htm
...att fungera, men är det RÄTT och hur får jag ut exakt SAMMA "sträng" från ett html-formulär? När jag försöker med...
<form method="post" name="<script_namn>" action="../cgi-bin/<script_namn>.pl">
<input type="text" size="50" name="infil1" value="exempel: ../inout/infil1.htm">
<input type="text" size="50" name="infil2" value="exempel: ../inout/infil1.htm">
<input type="text" size="50" name="utfil3" value="exempel: ../inout/utfil3.htm">
<input type="submit" name="submit" value="SEND & create file">
<input type="reset" name="reset" value="RESET all fields">
...vet jag inte vad som skickas, och scriptet svarar som om det inte får någon parameter skickad till sig, alls.

Medlem sedan jan. 2005953 inlägg
#2

Hur tar du emot informationen i perl-filen då?

Medlem sedan jan. 200363 inlägg
#3

$ARGV[0]
$ARGV[1]
$ARGV[2]

Medlem sedan juni 20008 205 inlägg
#4

Du kan inte använda ett "vanligt" perlscript (som är tänkt att köra som kommandoradsprogram) som CGI. Om du POST:ar formuläret, kommer parametrarna in på stdin som t.ex. infil1=../inout/infil1.htm&infil2=../inout/infil2.htm&utfil3=../inout/infil1.htm, med alla icke-ASCII-tecken URL-kodade. Använder du GET som metod kommer parametrarna på samma format fast i miljövariabeln QUERY_STRING. Det borde finnas en massa CPAN-moduler som kan sköta sånt här åt dig, googla runt lite.

Sen kan man kanske rekommendera att du kollar in nån CGI-tutorial också. Finns rätt mycket man måste tänka på...

Medlem sedan jan. 200363 inlägg
#5

Tack spango! Att aldrig någonting bara kan vara ENKELT... NÅGON gång... ;-)

Medlem sedan jan. 200363 inlägg
#6

Men du, förresten!? Hur kommer det sig att följande fungerar, om man skjuter det i en webbrowsers adressfält?
http://<IP_adress>/cgi-bin/<script_namn>.pl?../inout/infil1.htm+../inout/infil2.htm+../inout/utfil3.htm
BORDE man inte då rimligen kunna få en html-sida att ge ifrån sig en identisk "sträng"?

Medlem sedan juni 20008 205 inlägg
#7

Det är det som händer när du har metoden GET (det är den metod som används för att hämta webbsidor när man surfar runt på vanligt vis och klickar på länkar och har sig). Allt efter frågetecknet ligger i QUERY_STRING.

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)