| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
Parametrien lukuWhiz 10.06.01 08:11 Demonstroi kuinka perlillä luetaan käyttäjän syöttämät parametrit
#!/usr/bin/perl -Tw use strict; use CGI::Carp qw(fatalsToBrowser); use CGI; my $cgiobject = CGI->new() or die "CGI->new() failed"; my $nimi=$cgiobject->param("nimi") || ""; my $kaupunki=$cgiobject->param("kaupunki") || ""; print $cgiobject->header; print "nimesi on $nimi ja asut kaupungissa nimeltä $kaupunki"; #Eli jos tämä scripti ajetaan vaikka nettisivulta #script.pl?nimi=Tero&kaupunki=Hämeenlinna , niin #scripti tulostaa näytölle tekstin nimesi on Tero #ja asut kaupungissa nimeltä Hämeenlinna. Tällä #tavalla siis formien käsittely on todella #helppoa. Muistat vain korjata tuon ensimmäisen #rivin siihen muotoon, että se toimii sinun #serverilläsi. (jos et tiedä missä niin kirjoita #whereis perl shellissä niin saat hakemiston #tietoosi. Mutta se siitä... #Muokattu By Santzes, mutta voitte syyttää Ionia jos jotain on väärin ;) kasa 12:52 24.3.03 kyseessähän siis on perlillä kirjoitettu CGI-skripti, joka jostain syystä yrittää olla fiksu ja tehdä asioita kuten my $foo = param("foo") || ""; käsittääkseni CGI::param() on niinkin ovela, että mikäli parametrillä ei ole arvoa, se on arvoton. kasa 13:27 24.3.03 #! /usr/local/bin/perl -w use strict; use CGI qw( :standard :cgi-lib ); # tuodaan sisään asioita use vars qw( %param_hash ); # 1024 byte POST limit $CGI::POST_MAX = 1024; # muut uploadit pois päältä $CGI::DISABLE_UPLOADS = 1; %param_hash = Vars(); print header(), start_html(); foreach my $key(sort keys %param_hash){ print "KEY('$key') VALUE('$param_hash{$key}')\n", br(); } print end_html(); __END__; itsestäänselvä pätkä, huomattavasti siistimpi ja käyttökelpoisempi vaihtoehto. (ei täydellinen, tietenkään) dist 15:53 15.4.03 $foo=param("foo") nimenomaan asettaa $foo:lle arvon undef jos parametriä "foo" ei ole olemassa. Siitä seuraa sitten se, että käytettäessä $foo:ta print:ssä seuraa warning: "Use of uninitialized valua in concatenation"... Eli kyllä se 'param("foo") || ""; ' on oikeasti ihan kätevä - Ei tule turhaa tavaraa logeihin. Tuon 'use vars qw(%param_hash);' voisi muuten korvata 'our %param_hash':lla. Ja kannattaa huomata, että toi POST_MAX on säädetty varsin pieneksi, vain 1k. (Jos mitään text-boxeja aikoo lähettää formista niin varmaankin tuota pääsee kasvattamaan) |
![]() Haku
|