³¯Â¥: 1996-07-05 | ±Û¾´ÀÌ: µµ¾Æ | 9591 ¹ø | ÇÁ¸°Æ® | ¸ÞÀϷκ¸³»±â

Á¦ 5°­ - Æû¹®¼­ »ý¼ºÇϱâ


ÁÖÀÇ1: ÆûÀ» »ý¼ºÇÏ´Â ¿©·¯ ¸Þ¼Òµå´Â ¸ðµÎ ¹®ÀÚ¿­(¿äûÇÑ Æû ¿ä¼Ò¸¦ »ý¼ºÇϴ ű׵éÀ» Æ÷ÇÔÇÏ´Â)À» ¸®ÅÏÇÑ´Ù. ÀÌ ¹®ÀÚ¿­À» Ãâ·ÂÇÏ´Â °ÍÀº »ç¿ëÀÚ°¡ ÇØ¾ß ÇÑ´Ù.

ÁÖÀÇ2: Æû¿¡¼­ ÁöÁ¤ÇÏ´Â ±âº» °ªÀº ´ÜÁö óÀ½ ½ºÅ©¸³Æ®°¡ È£ÃâµÉ¶§(¾î¶°ÇÑ ÁúÀÇ ¹®ÀÚ¿­ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ» ¶§)¿¡¸¸ »ç¿ëµÈ´Ù. À̾îÁö´Â ½ºÅ©¸³Æ®ÀÇ È£Ãâ(ÁúÀÇ ¹®ÀÚ¿­ÀÌ Á¸ÀçÇÒ ¶§)ÀÇ °æ¿ì ÁúÀÇ ¹®ÀÚ¿­ÀÌ ºóÁÙÀÏÁö¶óµµ ÀÌÀü °ªµéÀÌ »ç¿ëµÈ´Ù.

Æû Çʵ尪À» º¯°æÇÏ·Á¸é µÎ°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.

  1. param()
    ¸¦ È£ÃâÇؼ­ º¯°æÇÑ´Ù.
  2. -override(º°¸í -force) ¸Å°³º¯¼ö¸¦ »ç¿ëÇÑ´Ù(2.15 ÆÇÀÇ »õ·Î¿î Ư¡). ÀÌ °ÍÀº »ç¿ëµÉ ±âº» °ªÀ» ÀÌÀü °ª°ú ¹«°üÇÏ°Ô °­Á¦·Î º¯°æÇÑ´Ù.

print $query->textfield(-name=>'field_name',
	-default=>'ÃʱⰪ',
	-override=>1,
	-size=>50,
	-maxlength=>80);

ÁÖÀÇ3: ±âº»ÀûÀ¸·Î ÅؽºÆ®¿Í Æû ¿ä¼ÒÀÇ ·¹À̺íÀº HTML ±ÔÄ¢¿¡µû¶ó ÀÚµ¿À¸·Î Ư¼ö¹®ÀÚ·Î º¯È¯µÈ´Ù. ÀÌ °ÍÀº ¹öÆ° ·¹À̺í·Î¼­ ¾ÈÀüÇÏ°Ô "<³¯ ´­·¯>"¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ±×·¯³ª &Aacute;¿Í °°Àº Ư¼öÇÑ HTML ¹®ÀÚ¸¦ Çʵ忡 »ðÀÔÇÒ ¼ö´Â ¾ø´Ù. ÀÚµ¿ Ư¼ö¹®ÀÚ º¯È¯ ±â´ÉÀ» »ç¿ëÇÏÁö ¾ÊÀ¸·Á¸é CGI °³Ã¼¸¦ »ý¼ºÇÑ Á÷ÈÄ °ÅÁþÀ¸·Î

autoEscape()
¸Þ¼Òµå¸¦ È£ÃâÇÏ¸é µÈ´Ù.

$query = new CGI;
$query->autoEscape(undef);
ISINDEX ÅÂ±× »ý¼ºÇϱâ

print $query->isindex(-action=>$action);

¶Ç´Â

print $query->isindex($action);

<ISINDEX> ű׸¦ Ãâ·ÂÇÑ´Ù. -action ¸Å°³º¯¼ö´Â ÁúÀǸ¦ ó¸®ÇÒ ½ºÅ©¸³Æ®ÀÇ URLÀ» ÁöÁ¤ÇÑ´Ù. ±âº»°ªÀº ÇöÀç ½ºÅ©¸³Æ®·Î ÁúÀǸ¦ Àü¼ÛÇÑ´Ù. ÆûÀÇ ½ÃÀÛ°ú Á¾·á

print $query->startform(-method=>$method,
	-action=>$action,
	-encoding=>$encoding);
	<... ¿©·¯°¡Áö Æû ¿ä¼Ò ...>
print $query->endform;

¶Ç´Â

print $query->startform($method,$action,$encoding);
	<... ¿©·¯°¡Áö Æû ¿ä¼Ò ...>
print $query->endform;

startform()
Àº »ç¿ëÀÚ°¡ ÁöÁ¤ÇÑ ¸Þ¼Òµå, ¾×¼Ç, ¿£ÄÚµù Çü½ÄÀ» °®´Â <FORM> ű׸¦ ¸®ÅÏÇÑ´Ù. ¸Þ¼Òµå´Â POST°¡ ±âº»°ªÀ̸ç, ¾×¼ÇÀº ÇöÀç ½ºÅ©¸³Æ®, ¿£ÄÚµùÀº application/x-www-form-urlencoded°¡ ±âº»°ªÀÌ´Ù.

endform()
</FORM> ű׸¦ ¸®ÅÏÇÑ´Ù.

Startform()
ÀÇ ¿£ÄÚµùÀº ¼­¹ö·Î ÆûÀ» Àü¼ÛÇϱâ Àü¿¡ ÆûÀÇ ¿©·¯ Çʵ带 ¾î¶»°Ô °áÇÕÇØ¾ß ÇÏ´ÂÁö¸¦ ºê·Î¿ìÀú¿¡ ÅëÁöÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. ¿©±â¿¡´Â µÎ°³ÀÇ °ªÀÌ °¡´ÉÇÏ´Ù.

application/x-www-form-urlencoded
ÀÌ °ÍÀº ³×½ºÄÉÀÙ 2.0 ÀÌÀüÀÇ ¸ðµç ºê·Î¿ìÀú¿¡¼­ »ç¿ëµÈ ¿£ÄÚµù Çü½ÄÀÌ´Ù. ÀÌ °ÍÀº ¸¹Àº CGI ½ºÅ©¸³Æ®¿Í ȣȯµÇ¸ç ÅؽºÆ® µ¥ÀÌŸ¸¦ Æ÷ÇÔÇϴ ªÀº µ¥ÀÌŸ¸¦ Àü¼ÛÇϴµ¥¿¡ ÀûÇÕÇÏ´Ù. ÆíÀǸ¦ À§ÇØ CGI.pmÀº ÀÌ ¿£ÄÚµù Çü½ÄÀ» $CGI::URL_ENCODED¿¡ ÀúÀåÇÑ´Ù.

multipart/form-data
³Ý½ºÄÉÀÙ 2.0¿¡ÀÇÇØ µµÀÔµÈ »õ·Î¿î ¿£ÄÚµù Çü½ÄÀÌ´Ù. ÀÌ °ÍÀº ¾ÆÁÖ ¸¹Àº Çʵ带 Æ÷ÇÔÇϰųª 2Áø µ¥ÀÌŸ¸¦ Àü¼ÛÇÏ·Á´Â Æû¿¡ Àû´çÇÏ´Ù. °¡Àå Áß¿äÇÑ °ÍÀº ÀÌ ±â´ÉÀº ³Ý½ºÄÉÀÙ 2.0ÀÇ ÆÄÀÏ ¾÷·Îµå Ư¡À» »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ÆíÀǸ¦ À§ÇØ CGI.pmÀº ÀÌ ¿£ÄÚµù Çü½ÄÀÇ À̸§À» &CGI::MULTIPART¿¡ ÀúÀåÇÑ´Ù.

ÀÌ ¿£ÄÚµù Çü½ÄÀ» »ç¿ëÇÏ´Â ÆûÀº CGI.pmÀ̳ª À̵éÀ» ó¸®Çϵµ·Ï ¼³°èµÈ ´Ù¸¥ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ½±°Ô Çؼ®ÇÒ ¼ö ¾ø´Ù.

ÁÖÀÇ: ÆÄÀϾ÷·Îµå ±â´ÉÀº ÇöÀç ³Ý½ºÄÉÀÙ 2.0ÀÌ»ó, M$IE 4.0À̻󿡼­¸¸ Áö¿øµÈ´Ù.

ȣȯ¼ºÀ» À§ÇØ

startform()
¸Þ¼Òµå´Â ±âº»°ªÀ¸·Î ¿À·¡µÈ ¿£ÄÚµù Çü½Ä(application/x-www-form-urlencoded)À» »ç¿ëÇÑ´Ù. ¸¸¾à ±âº»°ªÀ¸·Î »õ·Î¿î ¿£ÄÚµù Çü½ÄÀ» »ç¿ëÇÏ·Á¸é startform() ´ë½Å¿¡ start_multipart_form()À» È£ÃâÇÑ´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®: -name°ú -onSubmit ¸Å°³º¯¼ö´Â ÀÚ¹Ù½ºÅ©¸³Æ®¿Í ÇÔ²² »ç¿ëÇϱâÀ§ÇØ Á¦°øµÈ´Ù. -name ¸Å°³º¯¼ö´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö¿¡ÀÇÇØ Á¶ÀÛµÉ ¼ö ÀÖµµ·Ï Æû¿¡ À̸§À» ºÎ¿©ÇÑ´Ù. -onSubmit ¸Å°³º¯¼ö´Â ÆûÀ» ¼­¹ö¿¡ Àü¼ÛÇϱâÀü¿¡ ¼öÇàµÉ ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö¸¦ ÁöÁ¤Çϴµ¥ »ç¿ëµÈ´Ù. ÀÏ°ü¼º°ú ¿ÏÀü¼ºÀ» À§ÇØ ÆûÀÇ ³»¿ëÀ» °Ë»çÇϴµ¥ ÀÌ·¯ÇÑ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÆûÀÇ ³»¿ëÁß À߸øµÈ °÷À» ¹ß°ßÇÏ¸é °æ°í ¸Þ½ÃÁö¸¦ Ãâ·ÂÇϰųª ÀÚ¹Ù½ºÅ©¸³Æ® ³»¿¡¼­ Á¤Á¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ ÇÔ¼ö¿¡¼­ °ÅÁþÀ» ¸®ÅÏÇÔÀ¸·Î¼­ ÆûÀÇ Á¦ÃâÀ» ÁßÁöÇÒ ¼öµµ ÀÖ´Ù.

º¸Åë ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö´Â HTML Çì´õºÎÀÇ <SCRIPT> ºí·°³»¿¡ Á¤ÀǵǸç -onSubmitÀº À̵é ÇÔ¼öÁß Çϳª¸¦ È£ÃâÇϴµ¥ »ç¿ëµÈ´Ù. º¸´Ù ÀÚ¼¼ÇÑ °ÍÀº

<A HREF="perl-cgipm3.htm#CREATING_THE_HTML_DOCUMENT_HEADE">start_html()</A>
À» º¸±â ¹Ù¶õ´Ù. ÅؽºÆ® ÇÊµå »ý¼ºÇϱâ

print $query->textfield(-name=>'field_name',
	-default=>'ÃʱⰪ',
	-size=>50,
	-maxlength=>80);

¶Ç´Â

print $query->textfield('field_name','starting value',50,80);

textfield()
´Â ÅؽºÆ® ÀÔ·ÂÇʵ带 ¸®ÅÏÇÑ´Ù.

¸Å°³º¯¼ö
ù¹ø° ¸Å°³º¯¼ö´Â Çʵ忡´ëÇÑ À̸§(-name)À¸·Î ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù.

µÎ¹ø° ¸Å°³º¯¼ö´Â Çʵ忡´ëÇÑ ±âº»°ªÀÌ´Ù(-default).

¼¼¹ø° ¸Å°³º¯¼ö´Â È­¸é¿¡ Ãâ·ÂµÉ ÇʵåÀÇ Å©±â(¹®ÀÚ¼ö)ÀÌ´Ù(-size).

³×¹ø° ¸Å°³º¯¼ö´Â Çʵ尡 Çã¿ëÇÒ ¼ö ÀÖ´Â ÃÖ´ë ¹®ÀÚÀÇ ¼öÀÌ´Ù(-maxlength).

ÀÌ ¸Þ¼Òµå¿¡¼­ Çʵå´Â CGI ½ºÅ©¸³Æ®¸¦ ÀÌÀü¿¡ È£ÃâÇßÀ» ¶§ °¡Á³´ø ³»¿ëÀ¸·Î ÃʱâÈ­µÈ´Ù. ÆûÀ» ó¸®ÇÒ ¶§ ÅؽºÆ® ÇʵåÀÇ °ªÀº ´ÙÀ½°ú °°ÀÌ º¹±¸µÉ ¼ö ÀÖ´Ù.

$value = $query->param('foo');

½ºÅ©¸³Æ®°¡ ÀÏ´Ü È£ÃâµÈ ÈÄ ÃʱⰪÀ» Àç ¼³Á¤ÇÏ·Á¸é ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

$query->param('foo',"³­ ³×°¡ ¹¹¶ó°í ÇÏ´ÂÁö ¸ð¸£°Ú¾î!");

2.15ÆÇÀÇ »õ·Î¿î Ư¡: ¸¸¾à Çʵ尡 ÀÌÀü °ªÀ» ÃëÇÏÁö ¾Êµµ·Ï ÇÏ·Á¸é -override (º°¸í:-force) ¸Å°³º¯¼ö¸¦ »ç¿ëÇؼ­ ÇöÀçÀÇ °ªÀ» °­Á¦·Î º¯°æÇÏ¸é µÈ´Ù.

print $query->textfield(-name=>'field_name',
	-default=>'ÃʱⰪ',
	-override=>1,
	-size=>50,
	-maxlength=>80);

ÀÚ¹Ù½ºÅ©¸³Æ®: ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ À̺¥Æ® 󸮱⸦ Áö¿øÇϱâ À§ÇØ -onChange, -onFocus, -onBlur, -onMouseOver, -onMouseOut¿Í -onSelectÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. onChange 󸮱â´Â »ç¿ëÀÚ°¡ ÅؽºÆ® ÇʵåÀÇ ³»¿ëÀ» º¯°æÇßÀ» ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ È£ÃâÇÑ´Ù. ¿øÇÏ´Â °æ¿ì ÀÌ °ÍÀ» ÀÔ·Â °Ë»ç¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. onFocus¿Í onBlur´Â °¢°¢ ¸¶¿ì½º Æ÷ÀÎÆ®¸¦ ÅؽºÆ® ÇÊµå ¾ÈÂÊ°ú ¹Ù±ùÁ·À¸·Î À̵¿ÇÒ ¶§ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ È£ÃâÇÑ´Ù. onSelect´Â »ç¿ëÀÚ°¡ ¼±ÅÃµÈ ÅؽºÆ® ÇʵåÀÇ ÀϺθ¦ º¯°æÇßÀ» ¶§ È£ÃâµÈ´Ù. Å« ÅؽºÆ® Çʵå(Textarea) »ý¼ºÇϱâ

print $query->textarea(-name=>'foo',
	-default=>'ÃʱⰪ',
	-rows=>10,
	-columns=>50);

¶Ç´Â

print $query->textarea('foo','ÃʱⰪ',10,50);

textarea()
´Â ÅؽºÆ® Çʵå¿Í °°Áö¸¸ ¿©·¯ ÁÙÀÇ ÀÔ·ÂâÀ» ¸¸µé±â À§ÇØ Çà°ú ¿­À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ Çʵ忡´ëÇÑ ÃʱⰪ°ú ÁÙ¼ö¿Í ÆøÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®: -onChange, -onFocus, -onBlur , -onMouseOver, -onMouseOut, °ú -onSelect ¸Å°³º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

<A HREF="#CREATING_A_TEXT_FIELD">textfield()</A>
¸¦ º¸±â¹Ù¶õ´Ù. Æнº¿öµå ÇÊµå »ý¼ºÇϱâ

print $query->password_field(-name=>'secret',
	-value=>'ÃʱⰪ',
	-size=>50,
	-maxlength=>80);

¶Ç´Â

print $query->password_field('secret','ÃʱⰪ',50,80);

password_field()
´Â
textfield()
¿Í µ¿ÀÏÇÏÁö¸¸ Æнº¿öµå ÇʵåÀÇ ³»¿ëÀº À¥ÆäÀÌÁö»ó¿¡¼­ º°Ç¥(*)·Î Ç¥½ÃµÈ´Ù´Â Â÷ÀÌ°¡ ÀÖ´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®: -onChange, -onFocus, -onBlur , -onMouseOver, -onMouseOut, °ú -onSelect ¸Å°³º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

<A HREF="#CREATING_A_TEXT_FIELD">textfield()</A>
¸¦ º¸±â¹Ù¶õ´Ù. ÆÄÀÏ ¾÷·Îµå ÇÊµå »ý¼ºÇϱâ

print $query->filefield(-name=>'uploaded_file',
	-default=>'ÃʱⰪ',
	-size=>50,
	-maxlength=>80);

¶Ç´Â

print $query->filefield('uploaded_file','ÃʱⰪ',50,80);

filefield()
´Â ³Ý½ºÄÉÀÙ 2.0ÀÇ ÆÄÀÏ ¾÷·Îµå Çʵ带 ¸®ÅÏÇÑ´Ù. ÀÌ ÆÄÀÏ ¾÷·ÎµåÀÇ ÀÕÁ¡À» ÃëÇϱâÀ§ÇØ ÇØ´ç ÆûÀº ¹Ýµå½Ã »õ·Î¿î multipart ¿£ÄÚµù Çü½ÄÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. $CGI::MULTIPARTÀÇ ¿£ÄÚµù Çü½ÄÀ¸·Î startform()¸¦ È£ÃâÇϰųª startform() ´ë½Å¿¡ »õ·Î¿î ¸Þ¼ÒµåÀÎ start_multipart_form()¸¦ È£ÃâÇØ¾ß ÇÑ´Ù.

¸Å°³º¯¼ö
ù¹ø° ¸Å°³º¯¼ö´Â Çʵ忡´ëÇÑ À̸§ÀÌ´Ù(-name).

µÎ¹ø° ¸Å°³º¯¼ö´Â ±âº» ÆÄÀϸíÀ¸·Î »ç¿ëµÉ ÃʱⰪÀÌ´Ù(-default).

³Ý½ºÄÉÀÙ 2.0 º£Å¸2 ÆÇÀº ÇöÀç ÀÌ Çʵ忡´ëÇÑ ¾î¶°ÇÑ Ã³¸®µµ ÇÏÁö ¸øÇϸç, µû¶ó¼­ ÃʱⰪÀº Ç×»ó °ø¹éÀÏ °ÍÀÌ´Ù. ´õ¿í ÁÁÁö¾ÊÀº °ÍÀº ÀÌ Çʵå´Â ÀÌÀü ³»¿ëÀ» ±â¾ïÇÒ ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù. ±×·¯³ª ÃʱⰪ Çʵå´Â HTML ¸í¼¼¿¡ Æ÷ÇԵǾúÀ¸¹Ç·Î ³Ý½ºÄÉÀÙÀÇ ´ÙÀ½ ¹öÀü¿¡¼­´Â ¼öÁ¤µÉ °ÍÀÌ´Ù.

¼¼¹ø° ¸Å°³º¯¼ö´Â È­¸é¿¡ Ãâ·ÂµÉ ÇʵåÀÇ Å©±â(¹®ÀÚ¼ö)ÀÌ´Ù(-size).

³×¹ø° ¸Å°³º¯¼ö´Â Çʵ尡 Çã¿ëÇÒ ¼ö ÀÖ´Â ÃÖ´ë ¹®ÀÚÀÇ ¼öÀÌ´Ù(-maxlength).

ÆûÀÌ Ã³¸®µÉ ¶§

param()
¸¦ È£ÃâÇÔÀ¸·Î¼­ ÀÔ·ÂÇÑ ÆÄÀϸíÀ» º¹±¸ÇÒ ¼ö ÀÖ´Ù.

$filename = $query->param('uploaded_file');

³Ý½ºÄÉÀÙ 2.0¿¡¼­ ¸®ÅÏµÈ ÆÄÀϸíÀº ¿ø°Ý ÄÄÇ»ÅÍ »óÀÇ ¿ÏÀüÇÑ ·ÎÄ® ÆÄÀϸíÀÌ´Ù. ¸¸¾à ¿ø°Ý »ç¿ëÀÚ°¡ Unix¿¡¼­ ÀÛ¾÷ÇÏ°í ÀÖ´Ù¸é ÆÄÀϸíÀº Unix °ü·Ê¿¡µû¶ó ´ÙÀ½°ú °°À» °ÍÀÌ´Ù.

/path/to/the/file

MS-DOS/Windows³ª OS/2¿¡¼­ ÀÛ¾÷ÇÏ°í ÀÖ´Ù¸é ÆÄÀϸíÀº µµ½º °ü·Ê¿¡µû¶ó ´ÙÀ½°ú °°À» °ÍÀÌ´Ù.

C:\PATH\TO\THE\FILE.MSW

¸ÆŲÅä½ÃÀÇ °æ¿ì ÆÄÀϸíÀº ¸ÆŲÅä½ÃÀÇ °ü·Ê¿¡µû¶ó ´ÙÀ½°ú °°À» °ÍÀÌ´Ù.

HD 40:Desktop Folder:Sort Through:Reminders

¸®ÅÏµÈ ÆÄÀϸíÀº ¶ÇÇÑ ÆÄÀÏ ÇÚµéÀÌ´Ù. µû¶ó¼­ ÆÞÀÇ Ç¥ÁØ ÆÄÀÏ Àб⠹æ¹ýÀ» »ç¿ëÇؼ­ ÆÄÀÏÀÇ ³»¿ëÀ» ÀÐÀ» ¼ö ÀÖ´Ù.

# ÅؽºÆ® ÆÄÀÏÀ» Àаí È­¸é¿¡ Ãâ·ÂÇÑ´Ù.out
while (<$filename>) {
	print;
}

# 2Áø ÆÄÀÏÀ» ¾ÈÀüÇÏ°Ô ´Ù¸¥ °÷À¸·Î º¹»çÇÑ´Ù.
open (OUTFILE,">>/usr/local/web/users/feedback");
while ($bytesread=read($filename,$buffer,1024)) {
	print OUTFILE $buffer;
}

ÆÄÀÏÀÌ ¾÷·ÎµåµÉ ¶§ ºê·Î¿ìÀú´Â º¸Åë Çì´õ Çü½ÄÀ¸·Î ¸î¸î Á¤º¸¸¦ Àü¼ÛÇÑ´Ù. ÀÌ Á¤º¸¿¡´Â º¸Åë MIME Çü½ÄÀÌ Æ÷ÇԵȴÙ. ¾ÕÀ¸·ÎÀÇ ºê·Î¿ìÀúµéÀº ´Ù¸¥ Á¤º¸(º¯°æÀÏÀÚ¿Í °°Àº)µµ Àü¼ÛÇÏ°Ô µÉ °ÍÀÌ´Ù. ¹®¼­ Çì´õ¸¦ Æ÷ÇÔÇÏ´Â ÀÌ·¯ÇÑ Á¤º¸¸¦ º¹¿øÇϱâ À§ÇØ ¿¬°ü¹è¿­À» ¸®ÅÏÇÏ´Â

uploadInfo()
¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

$filename = $query->param('uploaded_file');
$type = $query->uploadInfo($filename)->{'Content-Type'};
unless ($type eq 'text/html') {
	die "HTML ÆÄÀϸ¸ ÁÖ¶ó!";
}

¸¸¾à ÅؽºÆ®¿Í 2Áø µ¥ÀÌŸ ¸ðµå¸¦ ÀνÄÇÒ ¼ö ÀÖ´Â ÄÄÇ»Å͸¦ »ç¿ëÇÑ´Ù¸é ¾ðÁ¦ À̵éÀ» »ç¿ëÇÏ°í, ¾î¶»°Ô ÀÌµé »ç¿ëÇÏ´ÂÁö È®½ÇÈ÷ ÀÌÇØÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é 2Áø ÆÄÀÏÀº ÆÄÀÏÀÌ ¾÷·ÎµåµÇ´Â µ¿¾È ¼Õ»óµÉ °ÍÀÌ´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®: -onChange, -onFocus, -onBlur , -onMouseOver, -onMouseOut, °ú -onSelect ¸Å°³º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

<A HREF="#CREATING_A_TEXT_FIELD">textfield()</A>
¸¦ º¸±â¹Ù¶õ´Ù. ÆÄÀÏ ¾÷·ÎµåÀÇ ¿¹

 1 : #!/usr/local/bin/perl -w
 2 : 
 3 : use lib '..';
 4 : use CGI qw(:standard);
 5 : use CGI::Carp qw/fatalsToBrowser/;
 6 : 
 7 : print header();
 8 : print start_html("ÆÄÀÏ ¾÷·Îµå ¿¹");
 9 : print strong("Version "),$CGI::VERSION,p;
10 : 
11 : print h1("ÆÄÀÏ ¾÷·Îµå ¿¹"),
12 :     'ÀÌ ¿¹´Â ¿ø°Ý »ç¿ëÀÚ°¡ ÆÄÀÏÀ» ¾÷·Îµå ÇϱâÀ§ÇØ ÆÄÀÏÀ» ¼±ÅÃÇÏ´Â 
13 :     ¹æ¹ýÀ» º¸ÀÌ°í ÀÖ´Ù. ',
14 :     strong("ÆÄÀÏ ¾÷·Îµå´Â ³Ý½ºÄÉÀÙ 2.0ÀÌ»ó°ú 
	M$IE 4.0 À̻󿡼­¸¸ µ¿ÀÛÇÑ´Ù."),
15 :     p,
16 :     'ÅؽºÆ® ÆÄÀÏÀ» ¼±ÅÃÇϱâÀ§ÇØ', cite('ºê·Î¿ìÀú'),'¹öÆ°À» ¼±ÅÃÇÑ´Ù.
17 :     º¸³»±â¹öÆ°À» ´©¸£¸é ÀÌ ½ºÅ©¸³Æ®´Â ÇàÀÇ ¼ö, ´Ü¾îÀÇ ¼ö, ¹®ÀÚÀÇ ¼ö¸¦ 
18 :     ¼¾´Ù.';
19 : 
20 : @types = ('ÇàÀÇ ¼ö','´Ü¾îÀÇ ¼ö','¹®ÀÚÀÇ ¼ö');
21 : 
22 : # multipart ÆûÀ» ½ÃÀÛÇÑ´Ù.
23 : print start_multipart_form(),
24 :     "ó¸®ÇÒ ÆÄÀÏ:",
25 :     filefield('filename','aa',45),
26 :     br,
27 :     checkbox_group('count',\@types,\@types),
28 :     p,
29 :     reset('Áö¿ì±â'),submit('submit','º¸³»±â'),
30 :     endform;
31 : 
32 : # ÆÄÀϸíÀÌ Á¸ÀçÇÏ´Â °æ¿ì ÆûÀ» ó¸®ÇÑ´Ù.
33 : if ($file = param('filename')) {
34 :     $tmpfile=tmpFileName($file);
35 :     $mimetype = uploadInfo($file)->{'Content-Type'} || '';
36 :     print hr(),
37 :           h2($file),
38 :           h3($tmpfile),
39 :           h4("MIME Type:",em($mimetype));
40 : 
41 :     my($lines,$words,$characters,@words) = (0,0,0,0);
42 :     while (<$file>) {
43 : 	$lines++;
44 : 	$words += @words=split(/\s+/);
45 : 	$characters += length($_);
46 : 	push(@file, $_);
47 :     }
48 :     close $file;
49 :     grep($stats{$_}++,param('count'));
50 :     if (%stats) {
51 : 	print strong("Çà: "),$lines,br if $stats{'ÇàÀÇ ¼ö'};
52 : 	print strong("´Ü¾î: "),$words,br if $stats{'´Ü¾îÀÇ ¼ö'};
53 : 	print strong("¹®ÀÚ: "),$characters,br if $stats{'¹®ÀÚÀÇ ¼ö'};
54 : 	print strong("ÆÄÀϳ»¿ë: "), br;
55 : 	print @file;
56 :     } else {
57 : 	print strong("No statistics selected.");
58 :     }
59 : }
60 : 
61 : # print cite("URL parameters: "),url_param();
62 : 
63 : print hr(),
64 :     address(
65 : 	    a({href=>'/'},"±èÀç±Ù")),
66 :     end_html;
½ÇÇà°á°ú

file_upload.cgi Æ˾÷ ¸Þ´º »ý¼ºÇϱâ

print $query->popup_menu('menu_name',
	['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â'],
	'±èÁö¼ö');

¶Ç´Â

%labels = ('±èÈñ¼±'=>'Á¦ÀÏ ÁÁ¾ÆÇÏ´Â °Í',
	'±èÁö¼ö'=>'µÎ¹ø°·Î ÁÁ¾ÆÇÏ´Â °Í',
	'¹Ùº¸¿µ±â'=>'¼¼¹ø°´Â');
print $query->popup_menu('menu_name',
	['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â'],
	'±èÁö¼ö',\%labels);

¶Ç´Â(±â¸í ¸Å°³º¯¼ö Çü½Ä)

print $query->popup_menu(-name=>'menu_name',
	-values=>['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â'],
	-default=>'±èÁö¼ö',
	-labels=>\%labels);

popup_menu()
´Â ¸Þ´º¸¦ »ý¼ºÇÑ´Ù.

¸Å°³º¯¼ö
ù¹ø° ¸Å°³º¯¼ö´Â ¸Þ´ºÀÇ À̸§(-name)À¸·Î ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù.

µÎ¹ø° ¸Å°³º¯¼ö(-values)´Â ¸Þ´º Ç׸ñÀ» Æ÷ÇÔÇÏ´Â ¹è¿­ÀÌ´Ù. ¿¹¿¡¼­ º¸¿©Áø °Íó·³ À͸íÀÇ ¹è¿­À» ÀÎÀÚ·Î Àü´ÞÇϰųª "\@foo"¿Í °°ÀÌ À̸§À» °®´Â ¹è¿­À» Àü´ÞÇÒ ¼ö ÀÖ´Ù.

¼¼¹ø° ¸Å°³º¯¼ö(-default)´Â ±âº»ÀûÀ¸·Î ¼±ÅÃµÉ ¸Þ´º Ç׸ñÀÇ À̸§ÀÌ´Ù. ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ù¹ø° Ç׸ñÀÌ ±âº»ÀûÀ¸·Î ¼±ÅõȴÙ. ÀÌÀü¿¡ ¼±ÅÃÇÑ °ªÀº ÁúÀǸ¦ ÅëÇØ À¯ÁöµÉ °ÍÀÌ´Ù.

³×¹ø° ¸Å°³º¯¼ö(-labels)´Â Æ˾÷ ¸Þ´º¿¡¼­ »ç¿ëÀÚ¿¡°Ô º¸¿©Áö´Â Ç׸ñ°ú ½ºÅ©¸³Æ®·Î ¸®ÅϵǴ °ªÀ» ´Ù¸£°Ô ÇÏ·Á´Â »ç¶÷µéÀ» À§ÇØ Á¦°øµÈ´Ù. ÀÌ ¸Å°³º¯¼ö¸¦ °ø¹éÀ¸·Î µÎ¸é ¸Þ´º°ªÀº ±âº»ÀûÀ¸·Î Ãâ·ÂµÈ °ª(-values °ª)À̵ȴÙ(¶ÇÇÑ ¿øÇÏ´Â °æ¿ì Á¤ÀǵÇÁö ¾ÊÀº °ªÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù).

ÆûÀÌ Ã³¸®µÉ ¶§ Æ˾÷ ¸Þ´º¿¡¼­ ¼±ÅÃÇÑ °ªÀº ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î º¹±¸µÉ ¼ö ÀÖ´Ù.

$popup_menu_value = $query->param('menu_name');

ÀÚ¹Ù½ºÅ©¸³Æ®:

popup_menu()
´Â ´ÙÀ½°ú °°Àº À̺¥Æ® 󸮱⸦ ÀνÄÇÑ´Ù: -onChange, -onFocus, -onBlur, -onMouseOver, -onMouseOut°ú -onSelect ¸Å°³º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
<A HREF="#CREATING_A_TEXT_FIELD">textfield()</A>
¸¦ º¸±â¹Ù¶õ´Ù. À̵¿ ¼±Åà ¸ñ·Ï »ý¼ºÇϱâ

print $query->scrolling_list('list_name',
	['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â', '¿µ±â¹Ùº¸'],
	['±èÁö¼ö','¹Ùº¸¿µ±â'],5,'true');

¶Ç´Â

print $query->scrolling_list('list_name',
	['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â', '¿µ±â¹Ùº¸'],
	['±èÁö¼ö','¹Ùº¸¿µ±â'],5,'true',
	\%labels);

¶Ç´Â

print $query->scrolling_list(-name=>'list_name',
	-values=>['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â', '¿µ±â¹Ùº¸'],
	-default=>['±èÁö¼ö','¹Ùº¸¿µ±â'],
	-size=>5,
	-multiple=>'true',
	-labels=>\%labels);

scrolling_list()
´Â À̵¿ ¼±Åà ¸ñ·ÏÀ» »ý¼ºÇÑ´Ù.

¸Å°³º¯¼ö
ù¹ø°¿Í µÎ¹ø° ¸Å°³º¯¼ö´Â ¸®½ºÆ®ÀÇ À̸§(-name)°ú °ª(-values)ÀÌ´Ù. Æ˾÷¸Þ´º¿¡¼­ ó·³ µÎ¹ø° ÀÎÀÚ´Â ¹è¿­À̾î¾ß ÇÑ´Ù.

¼¼¹ø° ÀÎÀÚ(-default)´Â ±âº»ÀûÀ¸·Î ¼±ÅÃµÉ °ªµéÀ» Æ÷ÇÔÇÏ´Â ¹è¿­À̳ª ¼±ÅÃµÉ ÇϳªÀÇ °ªÀÏ ¼ö ÀÖ´Ù. ÀÌ ÀÎÀÚ°¡ ´©¶ôµÇ°Å³ª Á¤ÀǵÇÁö ¾ÊÀ¸¸é ¸®½ºÆ®°¡ óÀ½ È­¸é»ó¿¡ ³ªÅ¸³¯ ¶§ ¾î¶°ÇÑ °Íµµ ¼±ÅõÇÁö ¾Ê´Â´Ù. ±â¸í ¸Å°³º¯¼ö·Î´Â ÀÌ ¸Å°³º¯¼ö¿¡´ëÇÑ µ¿ÀǾî ÀÎ "-defaults"¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

³×¹ø° ¸Å°³º¯¼ö´Â È­¸é¿¡ Ãâ·ÂµÉ ¼±Åà ¸ñ·ÏÀÇ Å©±âÀÌ´Ù(-size).

´Ù¼¸¹ø° ÀÎÀÚ°¡ ÂüÀ¸·Î ¼³Á¤µÇ¸é µ¿½Ã¿¡ ¿©·¯°³¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù(-multiple). ±×·¸Áö ¾ÊÀ¸¸é ´ÜÁö Çѹø¿¡ Çϳª¸¸ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

¿©¼¸¹ø° ÀÎÀÚ¿¡´Â ¸®½ºÆ® Ç׸ñ°ú È­¸é¿¡ Ãâ·ÂµÉ ¶óº§·Î ±¸¼ºµÈ ¿¬°ü¹è¿­À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÁöÁ¤µÇÁö ¾ÊÀ¸¸é °ªÀÌ È­¸é¿¡ Ãâ·ÂµÈ´Ù.

ÆûÀÌ Ã³¸®µÉ ¶§ ¼±ÅÃµÈ ¸ðµç Ç׸ñÀº 'list_name'°ú °°Àº ¸Å°³º¯¼ö¸¦ ÀÌ¿ëÇؼ­ ¹è¿­·Î ¸®ÅϹÞÀ» ¼ö ÀÖ´Ù. ¼±ÅÃµÈ Ç׸ñÀÇ °ªÀº ´ÙÀ½°ú °°ÀÌ º¹±¸µÉ ¼ö ÀÖ´Ù.

@selected = $query->param('list_name');

ÀÚ¹Ù½ºÅ©¸³Æ®:

scrolling_list()
´Â ´ÙÀ½°ú °°Àº À̺¥Æ® 󸮱⸦ ÀνÄÇÑ´Ù: -onChange, -onFocus, -onBlur , -onMouseOver, -onMouseOut, °ú -onSelect ¸Å°³º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
<A HREF="#CREATING_A_TEXT_FIELD">textfield()</A>
¸¦ º¸±â¹Ù¶õ´Ù. ¿¬°üµÈ üũ»óÀÚ ±×·ì »ý¼ºÇϱâ

print $query->checkbox_group(-name=>'group_name',
	-values=>['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â', '¿µ±â¹Ùº¸'],
	-default=>['±èÁö¼ö','¹Ùº¸¿µ±â'],
	-linebreak=>'true',
	-labels=>\%labels);

print $query->checkbox_group('group_name',
	['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â', '¿µ±â¹Ùº¸'],
	['±èÁö¼ö','¹Ùº¸¿µ±â'],'true',\%labels);
HTML3-ȣȯ ºê·Î¿ìÀú¸¸

print $query->checkbox_group(-name=>'group_name',
	-values=>['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â', '¿µ±â¹Ùº¸'],
	-rows=2,-columns=>2);

checkbox_group()
´Â µ¿ÀÏÇÑ À̸§À» °®´Â üũ»óÀÚÀÇ ¸ñ·ÏÀ» »ý¼ºÇÑ´Ù.

¸Å°³º¯¼ö
ù¹ø°¿Í µÎ¹ø° ÀÎÀÚ´Â °¢°¢ üũ»óÀÚÀÇ À̸§°ú °ª((-name°ú -values)ÀÌ´Ù. Æ˾÷ ¸Þ´º¿¡¼­Ã³·³ µÎ¹ø° ÀÎÀÚ´Â ¹è¿­ÀÏ ¼ö ÀÖ´Ù. ÀÌµé °ªÀº ÁúÀÇ ¹®ÀÚ¿­·Î ½ºÅ©¸³Æ®¿¡ Àü´ÞµÇ´Â °ª »Ó¸¸¾Æ´Ï¶ó ´ÙÀ½ üũ »óÀÚ ¾Õ¿¡ Ãâ·ÂµÇ´Â ·¹À̺í·Îµµ »ç¿ëµÈ´Ù.

¼¼¹ø° ÀÎÀÚ(-default)´Â ±âº»ÀûÀ¸·Î üũµÉ °ªµéÀ» ÁöÁ¤ÇÏ´Â ¹è¿­À̰ųª üũµÉ ÇϳªÀÇ °ªÀÏ ¼ö ÀÖ´Ù. ÀÌ ÀÎÀÚ¸¦ ´©¶ôÇϰųª Á¤ÀÇÇÏÁö ¾ÊÀ¸¸é üũ ¸ñ·ÏÀÌ Ã³À½ ³ªÅ¸³¯ ¶§ ¾î¶°ÇÑ °Íµµ ¼±ÅõÇÁö ¾Ê´Â´Ù.

³×¹ø° ÀÎÀÚ(-linebreak)¸¦ ÂüÀ¸·Î µÎ¸é ¼öÁ÷ ¸®½ºÆ®·Î ³ªÅ¸³ªµµ·Ï üũ»óÀÚ »çÀÌ¿¡ ÁÙ¹Ù²Þ ÄÚµåµÐ´Ù. ±×·¸Ä¡ ¾ÊÀ¸¸é À̵éÀº ¼öÆòÀ¸·Î ³ªÅ¸³­´Ù.

´Ù¼¸¹ø° ÀÎÀڴ üũ »óÀÚÀÇ °ª°ú »ç¿ëÀÚ°¡ º¼ ¼ö ÀÖ´Â ·¹À̺íÀÇ ½ÖÀ¸·Î ±¸¼ºµÈ ¿¬°ü¹è¿­ÀÌ´Ù(-labels). ¸¸¾à ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é °ªÀÌ ±âº» ·¹À̺í·Î »ç¿ëµÈ´Ù.

HTML3-ȣȯ ºê·Î¿ìÀú(Netscape°ú °°Àº)´Â -rows¿Í -columns°ú °°Àº Ãß°¡ÀûÀÎ ¸Å°³º¯¼ö¸¦ ÃëÇÒ ¼ö ÀÖ´Ù. ÀÌµé ¸Å°³º¯¼ö·Î
checkbox_group()
´Â ÁöÁ¤µÈ Çà°ú ¿­·Î üũ»óÀÚ ±×·ìÀ» Á¤·ÄÇÑ Ç¥¸¦ ¸®ÅÏÇÑ´Ù. ¿øÇÏ´Â °æ¿ì -columns ¸Å°³º¯¼ö¸¸ Á¦°øÇÒ ¼ö ÀÖ´Ù. checkbox_groupÀº ¿©±â¿¡´ëÇÑ ¿Ã¹Ù¸¥ Çà¼ö¸¦ °è»êÇÒ °ÍÀÌ´Ù.

¸®ÅϵǴ ǥÀÇ Çì´õºÎºÐÀ» Á¤ÀÇÇϱâÀ§ÇØ -rowheaders¿Í -colheaders ¸Å°³º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌµé µÑ´Ù ¹è¿­À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. À̵é Çì´õ´Â Àå½ÄÀ» À§ÇÑ °ÍÀ̸ç, üũ »óÀÚ¸¦ ó¸®Çϴµ¥¿¡´Â Æ÷ÇÔµÇÁö´Â ¾Êµç´Ù. µû¶ó¼­ üũ »óÀÚ´Â ¾ÆÁ÷µµ ÇϳªÀÇ À̸§À» °®´Â ´ÜÀ§ÀÌ´Ù.

ÆûÀÌ Ã³¸®µÉ ¶§ üũ »óÀÚÀÇ ¸ðµç Ç׸ñÀº 'group_name'À» ÀÌ¿ëÇؼ­ ¸ñ·ÏÀ¸·Î ¸®ÅϹÞÀ» ¼ö ÀÖ´Ù. üũ»óÀÚÀÇ "on" °ªÀº ´ÙÀ½°ú °°ÀÌ º¹±¸µÉ ¼ö ÀÖ´Ù.

@turned_on = $query->param('group_name');

checkbox_group()
¿¡ÀÇÇØ ¸®ÅÏµÈ °ªÀº »ç½Ç ¹öÆ° ¿ä¼ÒÀÇ ¹è¿­ÀÌ´Ù. À̵éÀ» Ç¥, ¸ñ·ÏÀ̳ª ´Ù¸¥ âÀÇÀûÀÎ ¹æ¹ýÀ¸·Î À̵éÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

@h = $query->checkbox_group(-name=>'group_name',-values=>\@values);
&use_in_creative_way(@h);

ÀÚ¹Ù½ºÅ©¸³Æ®:

checkbox_group()
Àº -onClick ¸Å°³º¯¼ö¸¦ ÀνÄÇÑ´Ù. ÀÌ °ÍÀ¸·Î ÇØ´ç ±×·ì³»ÀÇ ÀÓÀÇÀÇ ¹öÆ°À» »ç¿ëÀÚ°¡ Ŭ¸¯ÇÒ ¶§¸¶´Ù ¼öÇàµÉ ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. "this" º¯¼ö¸¦ »ç¿ëÇؼ­ Ŭ¸¯µÈ Ư¼öÇÑ ¹öÆ°ÀÇ µ¿ÀϼºÀ» º¹±¸ÇÒ ¼ö ÀÖ´Ù. ´ÜÀÏ Ã¼Å© »óÀÚ »ý¼ºÇϱâ

print $query->checkbox(-name=>'checkbox_name',
	-checked=>'checked',
	-value=>'ON',
	-label=>'³¯´­·¯');

¶Ç´Â

print $query->checkbox('checkbox_name','checked','ON','³¯´­·¯');

checkbox()
´Â ¼­·Î ¿¬°üµÇÁö ¾ÊÀº ºÐ¸®µÈ üũ»óÀÚ¸¦ »ý¼ºÇÑ´Ù.

¸Å°³º¯¼ö
ù¹ø° ¸Å°³º¯¼ö´Â üũ»óÀÚ¿¡´ëÇÑ À̸§ÀÌ´Ù(-name). ÀÌ °ÍÀº ¶ÇÇÑ Ã¼Å© »óÀÚ ´ÙÀ½¿¡ Ãâ·ÂµÇ´Â ·¹À̺í·Î »ç¿ëµÉ ¼ö ÀÖ´Ù.

µÎ¹ø° ¸Å°³º¯¼ö(-checked)´Â üũ »óÀÚ°¡ ±âº»ÀûÀ¸·Î ¼±ÅÃµÉ °ÍÀÎÁö ¾Æ´ÑÁö¸¦ ÁöÁ¤ÇÑ´Ù. µ¿ÀǾî´Â -selected¿Í -onÀÌ´Ù.

¼¼¹ø° ¸Å°³º¯¼ö(-value)´Â üũÇßÀ» ¶§ ¼­¹ö·Î Àü¼ÛµÉ üũ»óÀÚÀÇ °ªÀ» ÁöÁ¤ÇÑ´Ù. Á¦°øÇÏÁö ¾ÊÀ¸¸é "on"À¸·Î °¡Á¤ÇÑ´Ù.

³×¹ø° ¸Å°³º¯¼ö(-label)´Â üũ¹Ú½º¿¡ µ¡ºÙ¿©Áú ·¹À̺íÀÌ´Ù. Á¦°øÇÏÁö ¾ÊÀ¸¸é üũ»óÀÚÀÇ À̸§ÀÌ »ç¿ëµÈ´Ù.

üũ »óÀÚÀÇ °ªÀº ´ÙÀ½°ú °°ÀÌ º¹±¸µÉ ¼ö ÀÖ´Ù.

$turned_on = $query->param('checkbox_name');

ÀÚ¹Ù½ºÅ©¸³Æ®:

checkbox()
´Â -onClick ¸Å°³º¯¼ö¸¦ ÀνÄÇÑ´Ù. º¸´Ù ÀÚ¼¼ÇÑ °ÍÀº
<A HREF="#CREATING_A_GROUP_OF_RELATED_CHEC">checkbox_group()</A>
À» º¸±â¹Ù¶õ´Ù. ·¹µð¿À ¹öÆ° ±×·ì »ý¼ºÇϱâ

print $query->radio_group(-name=>'group_name',
	-values=>['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â'],
	-default=>'±èÁö¼ö',
	-linebreak=>'true',
	-labels=>\%labels);

¶Ç´Â

print $query->radio_group('group_name',['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â'],
	'±èÁö¼ö','true',\%labels);

HTML3-ȣȯ ºê·Î¿ìÀú¸¸

print $query->radio_group(-name=>'group_name',
	-values=>['±èÈñ¼±','±èÁö¼ö','¹Ùº¸¿µ±â', '¿µ±â¹Ùº¸'],
	-rows=2,-columns=>2);

radio_group()
Àº Áö¿ªÀûÀ¸·Î ¿¬°üµÈ ·¹µð¿À ¹öÆ° ÁýÇÕÀ» »ý¼ºÇÑ´Ù(±×·ìÁß Çϳª¸¸ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù)

¸Å°³º¯¼ö
ù¹ø° ÀÎÀÚ´Â ±×·ìÀÇ À̸§À¸·Î ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù(-name).

µÎ¹ø° ÀÎÀÚ(-values)´Â ·¡µð¿À ¹öÆ°¿¡´ëÇÑ °ªÀÇ ¸ñ·ÏÀÌ´Ù. ÆäÀÌÁö¿¡ ³ªÅ¸³ª´Â °ª°ú ·¹À̺íÀº µ¿ÀÏÇÏ´Ù. µÎ¹ø° ÀÎÀÚ·Î ¹è¿­À» Àü´ÞÇÑ´Ù. ¹è¿­Àº ÀÍ¸í ¹è¿­À̳ª À̸§À» °®´Â ¹è¿­, "\@foo"ÀÏ ¼ö ÀÖ´Ù.

¼¼¹ø° ¸Å°³º¯¼ö(-default)´Â ±âº»ÀûÀ¸·Î ¼±ÅÃµÉ ¹öÆ°ÀÇ À̸§ÀÌ´Ù. ¸¸¾à ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ù¹ø° Ç׸ñÀÌ ±âº»ÀûÀ¸·Î ¼±ÅõȴÙ. ¹öÆ°À» ±âº»ÀûÀ¸·Î ¼±ÅÃÇÏÁö ¾Ê±âÀ§ÇØ Á¸ÀçÇÏÁö ¾Ê´Â ¹öÆ° À̸§À» Á¦°øÇÒ ¼ö ÀÖ´Ù.

³×¹ø° ¸Å°³º¯¼ö(-linebreak)´Â ¹öÆ°µé »çÀÌ¿¡ ÁÙ¹Ù²Þ Äڵ带 µÎ±âÀ§ÇØ "Âü"À¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¼öÁ÷¸®½ºÆ®¸¦ »ý¼ºÇÑ´Ù.

´Ù¼¸¹ø° ¸Å°³º¯¼ö(-labels)´Â ¹öÆ°°ª°ú È­¸éÃâ·Â¿¡ »ç¿ëµÉ ·¹À̺í·Î ±¸¼ºµÈ ¿¬°ü¹è¿­ÀÌ´Ù. ¸¸¾à Á¦°øÇÏÁö ¾ÊÀ¸¸é °ª ÀÚü°¡ Ãâ·ÂµÈ´Ù.

HTML3-ȣȯ ºê·Î¿ìÀú(Netscape°ú °°Àº)Àº -rows¿Í -columns°ú °°Àº Ãß°¡ÀûÀÎ ¸Å°³º¯¼ö¸¦ ÃëÇÒ ¼ö ÀÖ´Ù. ÀÌµé ¸Å°³º¯¼ö·Î
radio_group()
´Â ÁöÁ¤µÈ Çà°ú ¿­·Î Á¤·ÄµÈ ·¹µð¿À ±×·ìÀ» Ç¥·Î ¸®ÅÏÇÑ´Ù. ¿øÇÏ´Â °æ¿ì -columns ¸Å°³º¯¼ö¸¸ Á¦°øÇÒ ¼ö ÀÖ´Ù. radio_groupÀº ¿©±â¿¡´ëÇÑ ¿Ã¹Ù¸¥ Çà¼ö¸¦ °è»êÇÒ °ÍÀÌ´Ù.

¸®ÅϵǴ ǥÀÇ Çì´õºÎºÐÀ» Á¤ÀÇÇϱâÀ§ÇØ -rowheaders¿Í -colheaders ¸Å°³º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌµé µÑ´Ù ¹è¿­À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. À̵é Çì´õ´Â Àå½ÄÀ» À§ÇÑ °ÍÀ̸ç, À̵éÀº üũ »óÀÚ¸¦ ó¸®Çϴµ¥¿¡ Æ÷ÇÔµÇÁö´Â ¾Êµç´Ù. µû¶ó¼­ üũ »óÀÚ´Â ¾ÆÁ÷µµ ÇϳªÀÇ À̸§À» °®´Â ´ÜÀ§ÀÌ´Ù.

ÆûÀÌ Ã³¸®µÉ ¶§ ¼±ÅÃµÈ ·¹µð¿À ¹öÆ°Àº ´ÙÀ½°ú °°ÀÌ º¹±¸µÉ ¼ö ÀÖ´Ù.

$which_radio_button = $query->param('group_name');

radio_group()
¿¡ÀÇÇØ ¸®ÅÏµÈ °ªÀº »ç½Ç ¹öÆ° ¿ä¼ÒÀÇ ¹è¿­ÀÌ´Ù. Ç¥, ¸ñ·ÏÀ̳ª ´Ù¸¥ âÀÇÀûÀÎ ¹æ¹ýÀ¸·Î À̵éÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

@h = $query->radio_group(-name=>'group_name',-values=>\@values);
&use_in_creative_way(@h);
Á¦Ãâ ¹öÆ° »ý¼ºÇϱâ

print $query->submit(-name=>'button_name',
	-value=>'value');

¶Ç´Â

print $query->submit('button_name','value');

submit()
Àº ÁúÀÇ Á¦Ãâ ¹öÆ°À» »ý¼ºÇÑ´Ù. °¢°¢ÀÇ ÆûÀº À̵éÁß Çϳª¸¦ °®´Â´Ù.

¸Å°³º¯¼ö
ù¹ø° ÀÎÀÚ(-name)´Â Á¶°ÇºÎÀÌ´Ù. Æû¿¡ ¿©·¯ °³ÀÇ Á¦Ãâ ¹öÆ°ÀÌ ÀÖÀ¸¸é¼­ À̵éÀ» ±¸ºÐÇÏ·Á¸é ¹öÆ°¿¡ À̸§À» ÁÙ ¼ö ÀÖ´Ù. ÀÌ À̸§Àº ¶ÇÇÑ ·¹À̺í·Îµµ »ç¿ëµÈ´Ù. ¸î¸î ¼Ò¼öÀÇ ¿À·¡µÈ ºê·Î¿ìÀú´Â ÀÌ °ÍÀ» ¹Ù¸£°Ô ó¸®ÇÏÁö ¸øÇÏ¸ç ¹öÆ°ÀÇ °ªÀ» Àü¼ÛÇÏÁö ¸øÇÑ´Ù´Â °Í¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù.

µÎ¹ø° ÀÎÀÚ(-value)¶ÇÇÑ Á¶°ÇºÎÀÌ´Ù. ÀÌ °ÍÀº ÁúÀÇ ¹®ÀÚ¿­À» ÅëÇØ ½ºÅ©¸³Æ®·Î Àü´ÞµÉ °ªÀ» ÁöÁ¤ÇÑ´Ù.

°¢°¢ ¼­·Î ´Ù¸¥ ¹öÆ° °ªÀ» »ç¿ëÇÔÀ¸·Î¼­ ´­·ÁÁø ¹öÆ°À» ÆÇ´ÜÇÒ ¼ö ÀÖ´Ù.

$which_one = $query->param('button_name');

ÀÚ¹Ù½ºÅ©¸³Æ®:

submit()
´Â -onClick ¸Å°³º¯¼ö¸¦ ÀνÄÇÑ´Ù. º¸´Ù ÀÚ¼¼ÇÑ °ÍÀº
<A HREF="#CREATING_A_GROUP_OF_RELATED_CHEC">checkbox_group()</A>
À» º¸±â¹Ù¶õ´Ù. ¸®¼Â ¹öÆ° »ý¼ºÇϱâ

print $query->reset

reset()
Àº ¸®¼Â ¹öÆ°À» »ý¼ºÇÑ´Ù. ÀÌ °ÍÀº ½ºÅ©¸³Æ®°¡ È£ÃâµÈ ¸¶Áö¸· °ª(¹Ýµå½Ã ±âº»°ªÀÌ ¾Æ´Ï¶ó)À¸·Î ÆûÀ» º¹±¸ÇÑ´Ù. ±âº» ¹öÆ° »ý¼ºÇϱâ

print $query->defaults('button_label')

defaults()
Àº ÆûÀ» ÆûÀÇ ±âº»°ªÀ¸·Î ¿ÏÀüÈ÷ ¸®¼ÂÇϸç, µû¶ó¼­ »ç¿ëÀÚÀÇ º¯°æÀ» ¸ðµÎ Áö¿ì´Â ¹öÆ°À» »ý¼ºÇÑ´Ù. È÷µç ÇÊµå »ý¼ºÇϱâ

print $query->hidden(-name=>'hidden_name',
	-default=>['value1','value2'...]);

¶Ç´Â

print $query->hidden('hidden_name','value1','value2'...);

hidden()
Àº »ç¿ëÀÚ°¡ º¼¼ö ¾ø´Â ÅؽºÆ® Çʵ带 »ý¼ºÇÑ´Ù. ÀÌ °ÍÀº ÇϳªÀÇ ½ºÅ©¸³Æ®¿¡¼­ ´ÙÀ½ ½ºÆ®¸³Æ®·Î »óÅÂÁ¤º¸¸¦ Àü´ÞÇÒ ¶§ À¯¿ëÇÏ´Ù.

¸Å°³º¯¼ö
ù¹ø° ÀÎÀÚ´Â ¹Ýµå½Ã ÇÊ¿äÇϸç ÇʵåÀÇ À̸§À» ÁöÁ¤ÇÑ´Ù(-name).

µÎ¹ø° ÀÎÀÚ ¶ÇÇÑ ¹Ýµå½Ã ÇÊ¿äÇϸç ÇʵåÀÇ °ªÀ» ÁöÁ¤ÇÑ´Ù(-default). ±â¸í ¸Å°³º¯¼ö È£Ãâ¿¡¼­´Â ¿©±â¿¡ ÇϳªÀÇ °ªÀ̳ª Àüü ¸ñ·ÏÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù.

´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ÀÌ È÷µç ÇʵåÀÇ °ªÀ» °¡Á®¿Â´Ù.

$hidden_value = $query->param('hidden_name');

ÁÖÀÇ: ´Ù¸¥ ¸ðµç Æû ¿ä¼Ò¿Í ¸¶Âù°¡Áö·Î È÷µç ÇʵåÀÇ °ªµµ À¯ÁöµÈ´Ù´Â °Í¿¡ ÁÖÀÇÇÑ´Ù. ¸¸¾à ½ºÅ©¸³Æ®°¡ ÀÏ´Ü È£ÃâµÈ ÈÄ È÷µç ÇʵåÀÇ °ªÀ» ´Ù¸¥ °ÍÀ¸·Î ±³Ã¼ÇÏ·Á¸é ¼öÀÛ¾÷À¸·Î ¹Ù²Ù¾î¾ß ÇÑ´Ù.

$query->param('hidden_name','new','values','here');
À̹ÌÁö ¹öÆ° »ý¼ºÇϱâ

print $query->image_button(-name=>'button_name',
	-src=>'/source/URL',
	-align=>'MIDDLE');      

¶Ç´Â

print $query->image_button('button_name','/source/URL','MIDDLE');

image_button()
´Â Ŭ¸¯ÇÒ ¼ö ÀÖ´Â À̹ÌÁö ¹öÆ°À» ¸¸µç´Ù. ÀÓÀÇÀÇ À§Ä¡¸¦ Ŭ¸¯ÇßÀ» ¶§ "button_name.x", "button_name.y"¿Í °°Àº °ªÀÌ ½ºÅ©¸³Æ®·Î Àü´ÞµÈ´Ù. ¿©±â¼­ "button_name"Àº »ç¿ëÀÚ°¡ À̹ÌÁö¿¡ ÇÒ´çÇÑ À̸§ÀÌ´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®:

image_button()
´Â -onClick ¸Å°³º¯¼ö¸¦ ÀνÄÇÑ´Ù. º¸´Ù ÀÚ¼¼ÇÑ °ÍÀº
<A HREF="#CREATING_A_GROUP_OF_RELATED_CHEC">checkbox_group()</A>
À» º¸±â¹Ù¶õ´Ù.

¸Å°³º¯¼ö
ù¹ø° ÀÎÀÚ(-name)´Â ¹Ýµå½Ã ÇÊ¿äÇϸç ÀÌ ÇʵåÀÇ À̸§À» ÁöÁ¤ÇÑ´Ù.

µÎ¹ø° ÀÎÀÚ(-src) ¶ÇÇÑ ¹Ýµå½Ã ÇÊ¿äÇϸç À̹ÌÁöÀÇ URLÀ» ÁöÁ¤ÇÑ´Ù.

¼¼¹ø° ÀÎÀÚ(-align, Á¶°ÇºÎ)´Â À̹ÌÁö¸¦ Á¤·ÄÇÏ´Â ¹æ¹ýÀ¸·Î TOP, BOTTOM ¶Ç´Â MIDDLEµîÀÌ °¡´ÉÇÏ´Ù.

À̹ÌÁö ¹öÆ°ÀÇ °ªÀº ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î °¡Á®¿Â´Ù.

$x = $query->param('button_name.x');
$y = $query->param('button_name.y');
ÀÚ¹Ù½ºÅ©¸³Æ® ¾×¼Ç ¹öÆ° »ý¼ºÇϱâ

print $query->button(-name=>'button_name',
	-value=>'¿ä°Å º¸ÀÌ´Ï?',
	-onClick=>"do_something()");

¶Ç´Â

print $query->button('button_name',"do_something()");

button()
Àº ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ È£ÃâÇϱâÀ§ÇÑ ¹öÆ°(<INPUT> ű×ÀÇ TYPE¼Ó¼ºÀÌ BUTTONÀÎ)À» »ý¼ºÇÑ´Ù. ¹öÆ°ÀÌ ´­·¯Á³À» ¶§ -onClick ¸Å°³º¯¼ö¿¡ÀÇÇØ ÁöÁ¤µÈ ÀÚ¹Ù½ºÅ©¸³Æ®°¡ ½ÇÇàµÈ´Ù. ³Ý½ºÄÉÀÙÀÌ¿ÜÀÇ ºê·Î¿ìÀú¿¡¼­´Â ÀÌ Æû ¿ä¼Ò´Â ÃⸯµÇÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù.


´ÙÀ½±Û: Á¦ 6°­ - °í±Þ±â´É (17383)1996-07-06
ÀÌÀü±Û: Á¦ 4°­ - Ç¥ÁØ HTML ÅÂ±× ¸¸µé±â (11249)1996-07-04

¼¼»ó»ç´Â À̾߱â



RSS ±¸µ¶ (À͸í | ȸ¿ø | °­Á | Æ÷·³)
(C) 1996 ~ 2017 QAOS.com All rights reserved.