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

Á¦ 11°­ - msqlperl - °Ë»ö


ÀÌÁ¦ ¾Õ¼­ ÀÔ·ÂÇÑ Student Table¸¦ °Ë»öÇÏ°í ±× °á°ú¸¦ Ãâ·ÂÇÏ´Â CGI¸¦ ÀÛ¼ºÇϵµ·Ï ÇÏÀÚ. Student Å×À̺íÀº ´ÙÀ½°ú °°´Ù.

Student Table
sid sname phone lid class
924201 ±èÀç±Ù 244-2912 1 ÀüÀÚ°øÇаú
964201 Á¶°æ·æ 123-4598 1 ÀüÀÚ°øÇаú
974201 ±èÁ¦Âù 244-6597 2 ÀüÀÚ°øÇаú
974202 Â÷ÀºÁ¤ 211-5555 2 ÀüÀÚ°øÇаú
974203 ÇÑâ¹® 357-5678 2 ÀüÀÚ°øÇаú

ÀÌ DB °Ë»ö CGIµµ msql.cgi¿Í ºñ½ÁÇÑ ±¸Á¶¸¦ °®´Â´Ù. DB °Ë»ö CGIÀÇ ±¸Á¶

DB °Ë»ö CGIÀÇ ±¸Á¶
sindex.html
msql ¸ð´ÏÅÍ CGI¿¡¼­¿Í µ¿ÀÏÇÑ ¿ªÇÒÀ» ÇÏ´Â ÇÁ·¹ÀÓ ¹èÄ¡¿ëÆÄÀÏÀÌ´Ù. À­ ÇÁ·¹ÀÓ¿¡´Â Å×ÀÌŸº£À̽º¿¡ µî·ÏµÈ Å×À̺íÀÇ ¸ñ·Ï°ú °Ë»öÆûÀ» Ãâ·ÂÇÏ´Â dbsearch.cgi¸¦ È£ÃâÇÏ¸ç ¾Æ·¡ÂÊ ÇÁ·¹ÀÓ¿¡´Â dbsearch.cgi¿¡´ëÇÑ °£´ÜÇÑ µµ¿ò¸»ÀÌ Æ÷ÇԵǾî ÀÖ´Â sbelow.htmlÀ» ºÒ·¯¿Â´Ù.
sbelow.html
dbsearch.cgi¿¡´ëÇÑ °£´ÜÇÑ µµ¿ò¸»À» Æ÷ÇÔÇÏ°í ÀÖ´Â HTML ¹®¼­ÀÌ´Ù. ÇöÀç¿¡´Â ¾î¶°ÇÑ µµ¿ò¸»µµ ¾øÀ¸¹Ç·Î ÇÊ¿äÇÑ »ç¶÷ÀÌ ÇÊ¿ä¿¡ ¸Â°Ô ÀÛ¼ºÇϵµ·Ï ÇÑ´Ù.
dbsearch.cgi
DB °Ë»ö CGIÀÇ ÇÙ½ÉÀ¸·Î ÀÎÀÚ ¾øÀÌ È£ÃâÇÏ¸é µî·ÏµÈ µ¥ÀÌÅͺ£À̽ºÀÇ Å×ÀÌºí ¸ñ·Ï°ú Çʵå¸íÀ» Æ÷ÇÔÇÑ °Ë»öÆûÀ» »ý¼ºÇÑ´Ù. Å×À̺íÀÇ À̸§°ú °Ë»ö±âÁØ(Çʵå¸í), °Ë»ö¾î¸¦ ÁÖ¸é °Ë»öÀ» ¼öÇàÇÑ ÈÄ ±× °á°ú¸¦ ¸®ÅÏÇÑ´Ù.
ÇÁ·¹ÀÓ ÆÄÀÏ(sindex.html)

msql ¸ð´ÏÅÍ CGI¿¡¼­¿Í µ¿ÀÏÇÑ ¿ªÇÒÀ» ÇÏ´Â ÇÁ·¹ÀÓ ¹èÄ¡¿ëÆÄÀÏÀÌ´Ù.

 1 : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 2 : <HTML>
 3 : <HEAD>
 4 : <TITLE>DB °Ë»ö CGI</TITLE>
 5 : 
 6 : <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=EUC-KR">
 7 : <LINK REV="made" HREF="mailto:[email protected]">
 8 : <META NAME="author" content="Jae-Geun, Kim">
 9 : </HEAD>
10 : <FRAMESET ROWS="80,*" FRAMEBORDER="NO" FRAMESPACING="0" BORDER="0">
11 :      <FRAME NAME="searchtop" SRC="http://qaos.com/~artech/cgi-bin/dbsearch.cgi"
		 MARGINHEIGHT="0" MARGINWIDTH="0" SCROLLING="NO" NORESIZE >
12 :      <FRAME NAME="searchbelow" SRC="./sbelow.html" MARGINHEIGHT="0"
		 MARGINWIDTH="10" SCROLLING="AUTO" >
13 : </FRAMESET>
14 : </HTML>
15 : </html>
µµ¿ò¸» ÆÄÀÏ(sbelow.html)

dbsearch.cgi¿¡´ëÇÑ °£´ÜÇÑ µµ¿ò¸»À» Æ÷ÇÔÇÏ°í ÀÖ´Â HTML ¹®¼­ÀÌ´Ù.

 1 : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 2 : <HTML>
 3 : <HEAD>
 4 : <TITLE>DB °Ë»ö CGI µµ¿ò¸»</TITLE>
 5 : 
 6 : <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=EUC-KR">
 7 : <LINK REV="made" HREF="mailto:[email protected]">
 8 : <META NAME="author" content="Jae-Geun, Kim">
 9 : <META name="generator" content="Super NoteTab 4.0">
10 : <META name="keywords" content="DoA, Site, Search, Crack, File">
11 : <META name="description" content="Search DoA's Site">
12 : 
13 : </HEAD>
14 : <body>
15 : 
16 : <H2> µµ¿ò¸» </H2>
17 : <hr noshade size=4>
18 : 
19 : </body>
20 : </html>
°Ë»ö ÇÁ·Î±×·¥(dbsearch.cgi)

DB °Ë»ö CGIÀÇ ÇÙ½ÉÀ¸·Î ÀÎÀÚ ¾øÀÌ È£ÃâÇÏ¸é µî·ÏµÈ µ¥ÀÌÅͺ£À̽ºÀÇ Å×ÀÌºí ¸ñ·Ï°ú Çʵå¸íÀ» Æ÷ÇÔÇÑ °Ë»öÆûÀ» »ý¼ºÇÑ´Ù.

Å×À̺íÀÇ À̸§°ú °Ë»ö±âÁØ(Çʵå¸í), °Ë»ö¾î¸¦ ÁÖ¸é °Ë»öÀ» ¼öÇàÇÑ ÈÄ ±× °á°ú¸¦ ¸®ÅÏÇÑ´Ù. ¼Ò½º

  1 : #! /usr/local/bin/perl
  2 : require './cgi-lib.pl';
  3 : 
  4 : $database = 'commlab';
  5 : 
  6 : ReadParse(*FORM);
  7 : 
  8 : use Msql;
  9 : 
 10 : $dbh = Msql->connect;
 11 : defined($dbh) || CgiDie('µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇÒ ¼ö ¾ø½À´Ï´Ù');
 12 : 
 13 : $dbh->selectdb($database);
 14 : 
 15 : if($FORM{'table'} eq '') {
 16 : 	print SearchForm();
 17 : }
 18 : 
 19 : $query =<<Query;
 20 : select _rowid, sid, sname, phone, lid, class from $FORM{'table'}
 21 : where $FORM{'select'} like '%$FORM{'query'}%'
 22 : Query
 23 : 
 24 : $query =~ tr/[\n,\r]/[ , ]/;
 25 : 
 26 : $sth = $dbh->query($query);
 27 : 
 28 : unless(defined($sth)) {
 29 : 	$msg = $dbh->errmsg;
 30 :  	CgiDie("$msg", $FORM{'query'});
 31 : }
 32 : 
 33 : @fields = $sth->name;
 34 : 
 35 : print PrintHeader();
 36 : print HtmlTop('ÁúÀÇ°á°ú');
 37 : 
 38 : print <<Table;
 39 : <div align=center>
 40 : <table border=1 celpadding=1>
 41 : <tr>
 42 : Table
 43 : 
 44 : for(0..$#fields) {
 45 : 	print "<th> $fields[$_] </th>\n";
 46 : }
 47 : 
 48 : print "</tr>\n";
 49 : 
 50 : while(@row = $sth->fetchrow) {
 51 : 	print "<tr>\n";
 52 : 	for(0..$#row) {
 53 : 		$row[$_] = '&nbsp;' if($row[$_] eq '');
 54 : 		print "<td> $row[$_] </td>\n";
 55 : 	}
 56 : 	print "</tr>\n";
 57 : }
 58 : 
 59 : print "</table></div>\n";
 60 : 
 61 : print HtmlBot();
 62 : 
 63 : sub SearchForm {
 64 : print PrintHeader();
 65 : print HtmlTop();
 66 : 
 67 : print <<Form;
 68 : <div align=center>
 69 : <form action="/~artech/cgi-bin/dbsearch.cgi" method=post
		target=searchbelow>
 70 : <table border="0" cellpadding="0" cellspacing="1">
 71 : <TR>
 72 : 	<TH>Å×À̺í</TH>
 73 : 	<TH>°Ë»ö±âÁØ</TH>
 74 : 	<TH>°Ë»ö¾î</TH>
 75 : 	<TH>&nbsp;</TH>
 76 : </TR>
 77 : <TR>
 78 : 	<TD align=center valign=top>
 79 : 	<select name="table">
 80 : Form
 81 : 
 82 : @tables = $dbh->listtables;
 83 : for(0..$#tables) {
 84 : 	print "<option> $tables[$_]\n";
 85 : }
 86 : 
 87 : print <<Form;
 88 : 	</select>
 89 : 	</TD>
 90 : 
 91 : 	<TD>
 92 : 	<select name=select>
 93 : 	<option value=sid>Çйø
 94 : 	<option value=sname>À̸§
 95 : 	<option value=phone>ÀüÈ­
 96 : 	<option value=lid>°­Á¹øÈ£
 97 : 	<option value=class>Çаú
 98 : 	</select>
 99 : 	</TD>
100 : 
101 : 	<TD><input type=text name=query size=40></TD>
102 : 
103 : 	<TD valign=top><input type=submit value="º¸³»±â"></TD>
104 : </TR>
105 : </table>
106 : </form>
107 : </div>
108 : Form
109 : 
110 : print HtmlBot();
111 : 
112 : exit;
113 : }
½ÇÇà°á°ú
DB °Ë»ö °á°ú
¼³¸í
1~13
cgi-lib.pl ¶óÀ̺귯¸®¸¦ È£ÃâÇÏ°í, Æû µ¥ÀÌÅ͸¦ Àаí, DB ¿£Áø¿¡ Á¢¼Ó, DB¸¦ ¼±ÅÃÇÏ´Â ºÎºÐÀÌ´Ù. msql.cgi³ª listdb.cgi¿Í´Â ´Þ¸® µ¥ÀÌÅͺ£À̽ºÀÇ À̸§À» ¾Ë°í ÀÖ¾î¾ß ÇϹǷΠµ¥ÀÌÅͺ£À̽ºÀÇ À̸§Àº CGI ÇÁ·Î±×·¥ ³»¿¡¼­ ÇÒ´çÇß´Ù.
  4 : $database = 'commlab';
¶ÇÇÑ Å×À̺íÀÇ ¸ñ·ÏÀ» °¡Á®¿À±âÀ§ÇØ µ¥ÀÌÅͺ£À̽º¸¦ ¼±ÅÃÇÑ ÈÄ ÆûÀ» Ãâ·ÂÇÏ´Â SearchForm()¸¦ È£ÃâÇÑ´Ù´Â »ç½Ç¿¡ ÁÖÀÇÇϱ⠹ٶõ´Ù.
 13 : $dbh->selectdb($database);
 14 : 
 15 : if($FORM{'table'} eq '') {
 16 : 	print SearchForm();
 17 : }

19~22
°Ë»öÇÒ ÁúÀǾ »ý¼ºÇÏ´Â ºÎºÐÀÌ´Ù. msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥¿¡¼­ SQL¹®À» ÀÔ·ÂÇÏ´Â °Í°ú µ¿ÀÏÇÏ´Ù. query ¸Þ¼Òµå¿¡ Á÷Á¢ÀÔ·ÂÇصµ µÇÁö¸¸ °¡µ¶¼ºÀ» À§ÇØ µû·Îó¸®ÇÏ¿´´Ù. ÀÌ ºÎºÐ¿¡¼­ ÁÖÀÇÇÒ °ÍÀº _rowid¶ó´Â ½Ã½ºÅÛ º¯¼ö¸¦ Ãâ·Â Çʵ忡 Æ÷ÇÔ½ÃŲ´Ù´Â Á¡ÀÌ´Ù. ÇÊµå µ¥ÀÌŸ´Â °°À» ¼ö ÀÖÁö¸¸ ½Ã½ºÅÛ¿¡ÀÇÇØ »ý¼ºµÇ´Â _rowid´Â Ç×»ó ´Ù¸£±â ¶§¹®¿¡ µ¥ÀÌÅÍÀÇ ¼öÁ¤À̳ª »èÁ¦´Â ¹Ýµå½Ã ÀÌ _rowid¸¦ ÀÌ¿ëÇØ¾ß ÇÑ´Ù.
 20 : select _rowid, sid, sname, phone, lid, class from FORM{'table'}
SQL¹®¿¡¼­ Á¶°ÇÀº Áß°£ÀÚ °Ë»öÀ» ¼öÇàÇϱâÀ§ÇØ LIKE Á¤±Ô½ÄÀ» »ç¿ëÇßÀ¸¸ç, ÆûÀÇ VALUE ¼Ó¼ºÀÇ °ªÀ» Çʵå¸íÀ¸·Î »ç¿ëÇß´Ù. 21 : where $FORM{'select'} like '%$FORM{'query'}%'

$query =~ tr/[\n,\r]/[ , ]/;
SQL ÁúÀǸ¦ ÀÔ·ÂÇÏ´Â Áß¿¡ »ðÀÔµÈ °³Ç๮ÀÚ¸¦ °ø¹éÀ¸·Î º¯È¯ÇÏ´Â ºÎºÐÀÌ´Ù. Unix¸¦ ±â¹ÝÀ¸·Î µ¿ÀÛ½ÃÅ°´Â °æ¿ì¿¡ ÀÌ ÇàÀº »ý·«Çصµ µÈ´Ù.

$sth = $dbh->query($query);
½ÇÁ¦ »ç¿ëÀÚÀÇ ÁúÀÇ°¡ mSQL DB ¿£ÁøÀ¸·Î Àü¼ÛµÈ´Ù. msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥¿¡¼­ '\g'¸¦ ÀÔ·ÂÇÑ °Í°ú µ¿ÀÏÇÏ´Ù°í º¸¸é µÈ´Ù.

33~61
msql.cgi¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù. ÁúÀǸ¦ ¼öÇàÇÏ°í ±× °á°ú¸¦ HTMLÀÇ Ç¥·Î Ãâ·ÂÇÏ´Â ºÎºÐÀÌ´Ù.

63~113
msql.cgi¿Í °ÅÀÇ µ¿ÀÏÇÏ´Ù. ´Ù¸¸ msqlÀº µ¥ÀÌÅͺ£À̽º¿¡´ëÇÑ ÁúÀǸ¦ ¼öÇàÇÏÁö¸¸ °Ë»öÀº Å×ÀÌºí¿¡ ´ëÇÑ ÁúÀǸ¦ ¼öÇàÇϹǷΠÃâ·ÂµÇ´Â °Ë»öÆû¿¡ ¾à°£ÀÇ Â÷ÀÌ°¡ ÀÖÀ» »ÓÀÌ´Ù. ÇÑ°¡Áö ÁÖÀÇ ÇÑ °ÍÀº 92~98Çà¿¡¼­ »ç¿ëÇÑ <SELECT> ű×ÀÌ´Ù. »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ °ªÀ» ¹Ù·Î WHERE ±¸¹®ÀÇ Çʵå¸íÀ¸·Î »ç¿ëÇϱâÀ§ÇØ <OPTION> ű×ÀÇ VALUE ¼Ó¼ºÀ» Çʵå¸íÀ¸·Î Çß´Ù.
 92 : 	<select name=select>
 93 : 	<option value=sid>Çйø
 94 : 	<option value=sname>À̸§
 95 : 	<option value=phone>ÀüÈ­
 96 : 	<option value=lid>°­Á¹øÈ£
 97 : 	<option value=class>Çаú
 98 : 	</select>


´ÙÀ½±Û: Á¦ 12°­ - msqlperl - »ðÀÔ (6888)1996-05-12
ÀÌÀü±Û: Á¦ 10°­ - msqlperl - msql (8287)1996-05-10

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



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