ÆûÀ» »ý¼ºÇÏ´Â ½ºÅ©¸³Æ®ÀÇ ¿ÏÀüÇÑ ¿¹
1 : #!/usr/local/bin/perl
2 :
3 : use CGI;
4 : use CGI::Carp qw/fatalsToBrowser/;
5 :
6 : $query = new CGI;
7 :
8 : print $query->header;
9 : print $query->start_html("CGI.pm ÆûÀÇ ¿¹");
10 : print "<H1>CGI.pm ÆûÀÇ ¿¹</H1>\n";
11 : &print_prompt($query);
12 : &do_work($query);
13 : &print_tail;
14 : print $query->end_html;
15 :
16 : sub print_prompt {
17 : my($query) = @_;
18 :
19 : print $query->start_form;
20 : print "<EM>À̸§Àº ¸ð´Ï?</EM><BR>";
21 : print $query->textfield('name');
22 : print $query->checkbox('ÁøÂ¥ À̸§ÀÌ ¾Æ´Ô');
23 :
24 : print "<P><EM>¿µ±¹ º¸½ÅÅÁÀº ¾îµð¿¡¼ ãÀ» ¼ö ÀÖÁö?</EM><BR>";
25 : print $query->checkbox_group(
26 : -name=>'Sparrow locations',
27 : -Values=>['¿µ±¹','ÇÁ¶û½º','½ºÆäÀÎ','¾Æ½Ã¾Æ','õ±¹'],
28 : -linebreak=>'yes',
29 : -defaults=>['¿µ±¹','¾Æ½Ã¾Æ']);
30 :
31 : print "<P><EM>¾Æ°¡¾¾ ÇѸíÀÌ º¸Åë ¸î±ÙÀ̳ª ¸ÔÀ» ¼ö ÀÖ³ª?</EM><BR>",
32 : $query->radio_group(
33 : -name=>'how far',
34 : -Values=>['1±Ù','2±Ù','3±Ù','5±Ù'],
35 : -default=>'3±Ù');
36 :
37 : print "<P><EM>ÁÖ·Î ¸¹ÀÌ ¸Ô´Â ¸Û¸ÛÀÌÀÇ »ö±òÀº?</EM> ";
38 : print $query->popup_menu(-name=>'Color',
39 : -Values=>['°ËÀº»ö','Ȳ»ö','Èù»ö','¾ó·è»ö'],
40 : -default=>'Ȳ»ö');
41 :
42 : print $query->hidden('Reference','º¸½ÅÅÁ Åë°è');
43 :
44 : print "<P><EM>º¸½ÅÅÁÀ» ¸ÔÀ» ¶§ ÀÕÁ¡Àº?</EM><BR>";
45 : print $query->scrolling_list(
46 : -name=>'possessions',
47 : -Values=>['ü·Â','Á¤·Â','¹Ì¿ë','¸À','Çâ'],
48 : -size=>5,
49 : -multiple=>'true');
50 :
51 : print "<P><EM>º¸½ÅÅÁÀÇ ±¹Á¦È¿¡´ëÇÑ ÀÇ°ß?</EM><BR>";
52 : print $query->textarea(-name=>'Comments',
53 : -rows=>10,
54 : -columns=>50);
55 :
56 : print "<P>",$query->reset('Áö¿ì±â');
57 : print $query->submit('Action','º¸³»±â');
58 : print $query->submit('Action','¶Çº¸³»±â');
59 : print $query->endform;
60 : print "<HR>\n";
61 : }
62 :
63 : sub do_work {
64 : my($query) = @_;
65 : my(@values,$key);
66 :
67 : print "<H2>ÇöÀç ¼³Á¤°ªÀº ´ÙÀ½°ú °°´Ù.</H2>";
68 :
69 : foreach $key ($query->param) {
70 : print "<STRONG>$key</STRONG> -> ";
71 : @values = $query->param($key);
72 : print join(", ",@values),"<BR>\n";
73 : }
74 : }
75 :
76 : sub print_tail {
77 : print <<END;
78 : <HR>
79 : <ADDRESS>±èÀç±Ù</ADDRESS><BR>
80 : <A HREF="http://qaos.com/">ȨÆäÀÌÁö</A>
81 : END
82 : ;
83 : }
½ÇÇà°á°ú
monty.cgi
ÆÄÀϺñ±³
1 : #!/usr/local/bin/perl
2 :
3 : use CGI;
4 : $query = new CGI;
5 : print $query->header;
6 : print $query->start_html("À̹ÌÁö¿¡ Ŭ¸¯À»...");
7 : print <<END;
8 : <H1>À̹ÌÁö¿¡ Ŭ¸¯À»...</H1>
9 : </A>
10 : END
11 : print "¹Ì¾ÈÇÏÁö¸¸ º°°Å ¾Æ³Ä!\n";
12 :
13 : print $query->startform;
14 : print $query->image_button('picture',"./wilogo.gif");
15 : print "¹®ÀÚ¼±ÅÃ: ",$query->popup_menu('letter',['A','B','C','D','E','W']),"\n";
16 : print "<P>¹è¼ö: ",$query->radio_group('magnification',['1X','2X','4X','20X']),"\n";
17 : print "<HR>\n";
18 :
19 : if ($query->param) {
20 : print "<P>¹è¼ö, <EM>",$query->param('magnification'),"</EM>\n";
21 : print "<P>¹®ÀÚ, <EM>",$query->param('letter'),"</EM>\n";
22 : ($x,$y) = ($query->param('picture.x'),$query->param('picture.y'));
23 : print "<P>À§Ä¡ <EM>($x,$y)</EM>\n";
24 : }
25 :
26 : print $query->end_html;
½ÇÇà°á°ú
clickable_image.cgi
ÆÄÀϺñ±³
1 : #!/usr/local/bin/perl
2 :
3 : $DIFF = "/usr/bin/diff";
4 : $PERL = "/usr/local/bin/perl";
5 :
6 : use CGI qw(:standard);
7 : use CGI::Carp;
8 :
9 : print header;
10 : print start_html("ÆÄÀÏ ºñ±³");
11 : print "<strong>¹öÀü </strong>$CGI::VERSION<p>";
12 :
13 : print <<EOF;
14 : <H1>ÆÄÀÏ ºñ±³</H1>
15 : µÎ°³ÀÇ ÆÄÀÏÀ» ¼±ÅÃÇÏ°í ÆÄÀÏÀ» ºñ±³ÇϱâÀ§ÇØ "ÆÄÀϺñ±³" ¹öÆ°À»
16 : ´·¯¶ó
17 : EOF
18 : ;
19 :
20 : # ¸ÖƼÆÄÆûÀÇ ½ÃÀÛ
21 : print start_multipart_form;
22 : print "ÆÄÀÏ #1:",filefield(-name=>'file1',-size=>45),"<BR>\n";
23 : print "ÆÄÀÏ #2:",filefield(-name=>'file2',-size=>45),"<BR>\n";
24 : print "ºñ±³Çü½Ä: ",radio_group(-name=>'type',
25 : -value=>['³»¿ë','ÀϹÝ']),"<br>\n";
26 : print reset('Áö¿ì±â'),submit(-name=>'submit',-value=>'ÆÄÀϺñ±³');
27 : print endform;
28 :
29 : # ÆÄÀϸíÀÌ Á¸ÀçÇϸé ÆûÀ» ó¸®ÇÑ´Ù
30 : $file1 = param('file1');
31 : $file2 = param('file2');
32 :
33 : $|=1; # ½Ã½ºÅÛ ¹öÆÛ¸¦ °æÀ¯ÇÏÁö ¾Ê°í Á÷Á¢ Ãâ·Â
34 : if ($file1 && $file2) {
35 : $realfile1 = tmpFileName($file1);
36 : $realfile2 = tmpFileName($file2);
37 : print "<HR>\n";
38 : print "<H2>$file1°ú $file2</H2>\n";
39 :
40 : print "<PRE>\n";
41 : $options = "-c" if param('type') eq 'context';
42 : system "$DIFF $options $realfile1 $realfile2 |
$PERL -pe 's/>/>/g; s/</</g;'";
43 : close $file1;
44 : close $file2;
45 : print "</PRE>\n";
46 : }
47 :
48 : print end_html;
49 :
50 : sub sanitize {
51 : my $name = shift;
52 : my($safe) = $name=~/([a-zA-Z0-9._~#,]+)/;
53 : unless ($safe) {
54 : print "<strong>$nameÀº Unix ÆÄÀϸíÀÌ ¾Æ´Ï´Ù. ¹Ì¾ÈÇÏÁö¸¸ ¿©±â¼ °ïµÑ²².</strong>";
55 : exit 0;
56 : }
57 : return $safe;
58 : }
½ÇÇà°á°ú
diff_upload.cgi
ÁÖÀÇ:
ÀÌ CGI´Â Unix ½Ã½ºÅÛ ¸íÀ» »ç¿ëÇÏ°í ÀÖ´Ù. µû¶ó¼ ÀÌ CGI´Â Unix¿¡¼¸¸ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÑ´Ù.
ÆäÀÌÁö ²Ù¹Ì±â
1 : #!/usr/local/bin/perl
2 :
3 : use CGI qw(:standard :html3);
4 :
5 : # Æû¿¡¼ »ç¿ëµÉ »ó¼ö
6 : @colors=qw/aqua black blue fuschia gray green lime maroon navy olive
7 : purple red silver teal white yellow/;
8 : @sizes=("<default>",1..7);
9 :
10 : # "preferences" Äí±â¸¦ º¹¿øÇÑ´Ù.
11 : %preferences = cookie('preferences');
12 :
13 : # »ç¿ëÀÚ°¡ ¹è°æ»ö»óÀ̳ª »ç¿ëÀÚÀÇ À̸§À» º¯°æÇÏ·Á¸é
14 : # À̵éÀº CGI ¸Å°³º¯¼ö·Î ³ªÅ¸³´Ù.
15 : foreach ('text','background','name','size') {
16 : $preferences{$_} = param($_) || $preferences{$_};
17 : }
18 :
19 : # ¸î¸î ±âº»°ªÀ» ¼³Á¤ÇÑ´Ù.
20 : $preferences{'background'} = $preferences{'background'} || 'silver';
21 : $preferences{'text'} = $preferences{'text'} || 'black';
22 :
23 : # ÄíÅ°ÀÇ À¯È¿±â°£ÀÌ °æ°úÇÏÁö ¾Êµµ·Ï ÄíÅ°¸¦ Àç¼³Á¤ÇÑ´Ù.
24 : # ÀÌ °ÍÀ¸·Î »ç¿ëÀÚÀÇ º¯°æÀº °è¼Ó À¯È¿ÇÏ°Ô µÈ´Ù.
25 : $the_cookie = cookie(-name=>'preferences',
26 : -value=>\%preferences,
27 : -expires=>'+30d');
28 : print header(-cookie=>$the_cookie);
29 :
30 : # »ç¿ëÀÚÀÇ À̸§À» ŸÀÌƲ·Î º´ÇÕÇϱâÀ§ÇØ Å¸ÀÌƲÀ» Á¶Á¤ÇÑ´Ù.
31 : $title = $preferences{'name'} ?
32 : "$preferences{name}, ´Ù½Ã¿Í¼ ¹Ý°¡¿ö!" : "ÆäÀÌÁö º¯°æÇϱâ";
33 :
34 : # HTML ÆäÀÌÁö¸¦ »ý¼ºÇÑ´Ù. ¹è°æ»ö»ó°ú ±Û²ÃÀÇ Å©±â¸¦ º¯°æÇϱâÀ§ÇØ
35 : # ¿©·¯ ³Ý½ºÄÉÀÙ È®Àå ¼Ó¼ºÀ» »ç¿ëÇÑ´Ù.
36 : print start_html(-title=>$title,
37 : -bgcolor=>$preferences{'background'},
38 : -text=>$preferences{'text'}
39 : );
40 :
41 : print basefont({SIZE=>$preferences{size}}) if $preferences{'size'} > 0;
42 :
43 : print h1($title),<<END;
44 : ¾Æ·¡ÀÇ ÆûÀ» Á¦ÃâÇÔÀ¸·Î¼ ÀÌ ÆäÀÌÁöÀÇ ¿Ü°üÀ» º¯°æÇÒ ¼ö ÀÖ´Ù.
30ÀÏ ³»¿¡ ÀÌ ÆäÀÌÁö·Î ´Ù½Ã ¿À¸é ¼±ÅÃÇÑ °ªµéÀÌ º¹±¸µÇ´Â °ÍÀ»
È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
45 : END
46 : ;
47 :
48 : # ÆûÀ» »ý¼ºÇÑ´Ù.
49 : print hr(),
50 : start_form,
51 :
52 : "À̸§Àº: ",
53 : textfield(-name=>'name',
54 : -default=>$preferences{'name'},
55 : -size=>30),br,
56 :
57 : table(
58 : TR(
59 : td("ÁÁ¾ÆÇÏ´Â "),
60 : td("¹è°æ»ö:"),
61 : td(popup_menu(-name=>'background',
62 : -values=>\@colors,
63 : -default=>$preferences{'background'})
64 : ),
65 : ),
66 : TR(
67 : td(''),
68 : td("±Û²Ã»ö:"),
69 : td(popup_menu(-name=>'text',
70 : -values=>\@colors,
71 : -default=>$preferences{'text'})
72 : )
73 : ),
74 : TR(
75 : td(''),
76 : td("±Û²Ã Å©±â:"),
77 : td(popup_menu(-name=>'size',
78 : -values=>\@sizes,
79 : -default=>$preferences{'size'})
80 : )
81 : )
82 : ),
83 :
84 : submit(-label=>'¼³Á¤°ª ÀúÀå'),
85 : hr;
86 :
87 : print a({HREF=>"/"},'ȨÆäÀÌÁö·Î °¡±â');
88 : print end_html;
½ÇÇà°á°ú
customize.cgi
»óÅÂÀúÀå°ú ³»ºÎ¸µÅ©
1 : #!/usr/local/bin/perl
2 :
3 : use CGI;
4 : $query = new CGI;
5 :
6 : # »ó´çÈ÷ ±ä ¸ñ·Ï°ú Æ˾÷ ¸Þ´º¸¦ Æ÷ÇÔÇÏ´Â HTML ÆÄÀÏÀ» ¸¸µç´Ù.
7 : # Æ˾÷¸Þ´º´Â »óÅÂÁ¤º¸¸¦ À¯ÁöÇÑ´Ù´Â °ÍÀ» º¸¿©ÁÖ±â À§ÇÑ °ÍÀÌ´Ù.
8 : print $query->header;
9 : print $query->start_html("³»ºÎ ¸µÅ©ÀÇ ¿¹");
10 : print "<H1>³»ºÎ ¸µÅ©ÀÇ ¿¹</H1>\n";
11 : print "»óŸ¦ »ý¼ºÇϱâ À§ÇØ <cite>»óÅ »ý¼ºÇϱâ</cite>¹öÆ°À» Ŭ¸¯ÇÑ´Ù.",
12 : " Æ˾÷ ¸Þ´º¿¡¼ ÀÓÀÇÀÇ °ªÀ» ¼±ÅÃÇÏ°í
ÀÓÀÇÀÇ <cite>°Ç³Ê¶Ù±â</cite>¸µÅ©¸¦ Ŭ¸¯ÇÑ´Ù.";
13 :
14 : print "<A NAME="start"></A>\n"; # ÃÖ»óÀ§ ¾ÞÄ¿
15 :
16 : # ±âº» °ªÀ» °¡Á®¿Â´Ù.
17 : $query->param('amenu','¹Ùº¸1') unless $query->param('amenu');
18 :
19 : print $query->startform;
20 : print $query->popup_menu('amenu',[('¹Ùº¸1'..'¹Ùº¸9')]);
21 : print $query->submit('»óÅ »ý¼ºÇϱâ'),$query->endform;
22 :
23 : # ¿¹½Ã¸¦ À§ÇÑ ±ä ¸ñ·ÏÀ» »ý¼ºÇÑ´Ù.
24 : $myself = $query->self_url;
25 : print "<OL>\n";
26 : for (1..100) {
27 : print qq{<LI>List item #$_ <A HREF="$myself#start">°Ç³Ê¶Ù±â</A>\n};
28 : }
29 : print "</OL>\n";
30 :
31 : print $query->end_html;
½ÇÇà°á°ú
internal_links.cgi
ÀÚ¹Ù½ºÅ©¸³Æ® »ç¿ëÇϱâ
1 : #!/usr/local/bin/perl
2 :
3 : # ÆûÀÇ ÀÔ·ÂÀ» °Ë»çÇϱâÀ§ÇØ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¿¹½ÃÇÑ´Ù.
4 : use CGI qw(:standard);
5 :
6 : # ´ÙÀ½ ¹®¼³»¿¡ Æ÷Ç﵃ ÀÚ¹Ù½ºÅ©¸³Æ®ÀÌ´Ù.
7 : $JSCRIPT=!!!!!!!!