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

Á¦ 10°­ - msqlperl - msql


msqlperlÀ» ÀÌ¿ëÇÑ À¥/DB ¿¬µ¿ÀÇ µÎ ¹ø° ¿¹·Î¼­ Unix ¸í·ÉÇà¿¡¼­ »ç¿ëÇÑ msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥À» ±¸ÇöÇغ¸ÀÚ.

msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥Àº »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ SQL¹®À» mSQL DB ¿£ÁøÀ¸·Î Àü¼ÛÇÏ¸é µÇ¹Ç·Î »ó´çÈ÷ ½±°Ô ±¸ÇöµÉ ¼ö ÀÖ´Ù.

ÇÁ·Î±×·¡¹Ö°ú »ç¿ëÀÇ ÆíÀǸ¦ À§ÇØ msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°Àº ±¸Á¶·Î ±¸ÇöµÇ¾ú´Ù. msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥ÀÇ ±¸Á¶

¸ð´ÏÅÍ ÇÁ·Î±×·¥ÀÇ ±¸Á¶
mindex.html
ÇÁ·¹ÀÓ ¹èÄ¡¿ëÆÄÀϷμ­ ÇϳªÀÇ Ã¢À» µÎ °³ÀÇ ÇÁ·¹ÀÓÀ¸·Î ³ª´©´Â ¿ªÇÒÀ» ÇÑ´Ù. À­ ÇÁ·¹ÀÓ¿¡´Â µ¥ÀÌÅͺ£À̽ºÀÇ ¸ñ·Ï°ú msql ¸ð´ÏÅÍ ÀÔ·ÂÆûÀ» »ý¼ºÇϱâÀ§ÇØ msql.cgi¸¦ È£ÃâÇϸç, ¾Æ·¡ÂÊ ÇÁ·¹ÀÓ¿¡´Â msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥¿¡´ëÇÑ °£´ÜÇÑ µµ¿ò¸»ÀÌ Æ÷ÇԵǾî ÀÖ´Â mbelow.htmlÀ» ºÒ·¯¿Â´Ù.
mbelow.html
msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥¿¡´ëÇÑ °£´ÜÇÑ µµ¿ò¸»À» Æ÷ÇÔÇÏ°í ÀÖ´Â HTML ¹®¼­ÀÌ´Ù. ÇöÀç¿¡´Â ¾î¶°ÇÑ µµ¿ò¸»µµ ¾øÀ¸¹Ç·Î ÇÊ¿äÇÑ »ç¶÷ÀÌ ÇÊ¿ä¿¡ ¸Â°Ô ÀÛ¼ºÇϵµ·Ï ÇÑ´Ù.
msql.cgi
msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥ÀÇ ÇÙ½ÉÀ¸·Î ÀÎÀÚ ¾øÀÌ È£ÃâÇÏ¸é µî·ÏµÈ µ¥ÀÌÅͺ£À̽º ¸ñ·ÏÀ» Æ÷ÇÔÇÑ °Ë»ýÆûÀ» »ý¼ºÇÑ´Ù. µ¥ÀÌÅͺ£À̽ºÀÇ À̸§°ú SQL¹®À» ÁÖ¸é ÇØ´ç SQL ÁúÀǸ¦ ¼öÇàÇÑ ÈÄ ±× °á°ú¸¦ ¸®ÅÏÇÑ´Ù.
ÇÁ·¹ÀÓ ÆÄÀÏ(mindex.html)

ÇÁ·¹ÀÓ ¹èÄ¡¿ëÆÄÀϷμ­ ÇϳªÀÇ Ã¢À» µÎ °³ÀÇ ÇÁ·¹ÀÓÀ¸·Î ³ª´©´Â ¿ªÇÒÀ» ÇÑ´Ù. °£´ÜÇÑ HTML ÆÄÀÏÀ̸ç, ÇÁ·¹ÀÓ¿¡´ëÇÑ ÀÚ¼¼ÇÑ »çÇ×Àº HTML ¸Å´º¾óÀ» ÂüÁ¶ÇÑ´Ù.

 1 : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 2 : <HTML>
 3 : <HEAD>
 4 : <TITLE>mSQL ¸ð´ÏÅÍ ÇÁ·Î±×·¥</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="120,*" FRAMEBORDER="NO" FRAMESPACING="0" BORDER="0">
11 :      <FRAME NAME="searchtop" SRC="http://qaos.com/~artech/cgi-bin/msql.cgi"
		 MARGINHEIGHT="0" MARGINWIDTH="0" SCROLLING="NO" NORESIZE >
12 :      <FRAME NAME="searchbelow" SRC="./mbelow.html" MARGINHEIGHT="0"
		 MARGINWIDTH="10" SCROLLING="AUTO" >
13 : </FRAMESET>
14 : </HTML>
15 : </html>
µµ¿ò¸» ÆÄÀÏ(mbelow.html)

msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥¿¡´ëÇÑ °£´ÜÇÑ µµ¿ò¸»À» Æ÷ÇÔÇÏ°í ÀÖ´Â HTML ¹®¼­ÀÌ´Ù. ¸¶Âù°¡Áö·Î º¸´Ù ÀÚ¼¼ÇÑ »çÇ×Àº HTML ¸Å´º¾óÀ» ÂüÁ¶ÇÑ´Ù.

 1 : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 2 : <HTML>
 3 : <HEAD>
 4 : <TITLE>»çÀÌÆ®°Ë»ö</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>
¸ð´ÏÅÍ ÇÁ·Î±×·¥(msql.cgi)

msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥ÀÇ ÇÙ½ÉÀ¸·Î ÀÎÀÚ ¾øÀÌ È£ÃâÇÏ¸é µî·ÏµÈ µ¥ÀÌÅͺ£À̽º ¸ñ·ÏÀ» Æ÷ÇÔÇÑ °Ë»öÆûÀ» »ý¼ºÇϸç, µ¥ÀÌÅͺ£À̽ºÀÇ À̸§°ú SQL¹®À» ÁÖ¸é ÇØ´ç SQL ÁúÀǸ¦ ¼öÇàÇÑ ÈÄ ±× °á°ú¸¦ ¾Æ·¡ÂÊ ÇÁ·¹ÀÓÀ¸·Î ¸®ÅÏÇÑ´Ù. ¼Ò½º

 1 : #! /usr/local/bin/perl
 2 : require './cgi-lib.pl';
 3 : 
 4 : ReadParse(*FORM);
 5 : 
 6 : use Msql;
 7 : 
 8 : $dbh = Msql->connect;
 9 : defined($dbh) || CgiDie('µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇÒ ¼ö ¾ø½À´Ï´Ù');
10 : 
11 : if($FORM{'database'} eq '') {
12 : 	print SearchForm();
13 : }
14 : 
15 : $dbh->selectdb($FORM{'database'});
16 : $FORM{'query'} =~ s/[\cM | \n]/ /g;
17 : $sth = $dbh->query($FORM{'query'});
18 : 
19 : unless(defined($sth)) {
20 : 	$msg = $dbh->errmsg;
21 :  	CgiDie("$msg", $FORM{'query'});
22 : }
23 : 
24 : CgiDie("ÁúÀÇ°á°ú", "Å×ÀÌºí »ý¼º", "Å×À̺íÀÌ »ý¼ºµÇ¾ú½À´Ï´Ù") 
		if($FORM{'query'} =~ /^create/i);
25 : CgiDie("ÁúÀÇ°á°ú", "Å×ÀÌºí »èÁ¦", "Å×À̺íÀÌ »èÁ¦µÇ¾ú½À´Ï´Ù") 
		if($FORM{'query'} =~ /^drop/i);
26 : CgiDie("ÁúÀÇ°á°ú", "µ¥ÀÌŸ »ðÀÔ", "µ¥ÀÌŸ°¡ »ðÀԵǾú½À´Ï´Ù") 
		if($FORM{'query'} =~ /^insert/i);
27 : CgiDie("ÁúÀÇ°á°ú", "µ¥ÀÌŸ ¼öÁ¤", "µ¥ÀÌŸ°¡ ¼öÁ¤µÇ¾ú½À´Ï´Ù") 
		if($FORM{'query'} =~ /^update/i);
28 : CgiDie("ÁúÀÇ°á°ú", "µ¥ÀÌŸ »èÁ¦", "µ¥ÀÌŸ°¡ »èÁ¦µÇ¾ú½À´Ï´Ù") 
		if($FORM{'query'} =~ /^delete/i);
29 : @fields = $sth->name;
30 : 
31 : print PrintHeader();
32 : print HtmlTop('ÁúÀÇ°á°ú');
33 : 
34 : print <<Table;
35 : <div align=center>
36 : <table border=1 celpadding=1>
37 : <tr>
38 : Table
39 : 
40 : for(0..$#fields) {
41 : 	print "<th> $fields[$_] </th>\n";
42 : }
43 : 
44 : print "</tr>\n";
45 : 
46 : while(@row = $sth->fetchrow) {
47 : 	print "<tr>\n";
48 : 	for(0..$#row) {
49 : 		$row[$_] = '&nbsp;' if($row[$_] eq '');
50 : 		print "<td> $row[$_] </td>\n";
51 : 	}
52 : 	print "</tr>\n";
53 : }
54 : 
55 : print "</table></div>\n";
56 : 
57 : print HtmlBot();
58 : 
59 : sub SearchForm {
60 : print PrintHeader();
61 : print HtmlTop();
62 : print <<Form;
63 : <div align=center>
64 : <form action="/~artech/cgi-bin/msql.cgi" method=post target=searchbelow>
65 : <table border="0" cellpadding="0" cellspacing="1">
66 : <TR>
67 : 	<TH>DB</TH>
68 : 	<TH>ÁúÀÇ</TH>
69 : 	<TH>&nbsp;</TH>
70 : </TR>
71 : <TR>
72 : 	<TD align=center valign=top>
73 : 	<select name="database">
74 : Form
75 : 
76 : @db = $dbh->listdbs;
77 : for(0..$#db) {
78 : 	print "<option> $db[$_]\n";
79 : }
80 : 
81 : print <<Form;
82 : 	</select>
83 : 	</TD>
84 : 
85 : 	<TD>
86 : 	<textarea name=query cols=40 rows=5 wrap=soft></textarea>
87 : 	</TD>
88 : 
89 : 	<TD valign=top><input type=submit value="º¸³»±â"></TD>
90 : </TR>
91 : </table>
92 : </form>
93 : </div>
94 : Form
95 : 
96 : print HtmlBot();
97 : 
98 : exit;
99 : }
½ÇÇà°á°ú
msqlÀÇ ½ÇÇà°á°ú
¼³¸í
1~9
¾Õ¼­¿Í ¸¶Âù°¡Áö·Î Æûµ¥ÀÌŸ¸¦ Àаí, mSQL DB ¿£Áø¿¡ Á¢¼ÓÇÏ´Â ºÎºÐÀÌ´Ù. ´Ù¸¸ msql.cgi¿¡¼­´Â PerlÀÇ È£Ãâ±ÔÄ¢º¸´Ù´Â ÀϹÝÀûÀÎ ¾ð¾îÀÇ ÇÔ¼ö È£Ãâ±ÔÄ¢À» µû¶ú´Ù. ¶ÇÇÑ
ReadParse(*FORM);
°ú °°Àº ½ÄÀ¸·Î ReadParse¸¦ È£ÃâÇϸé ÀÌÈÄÀÇ Æûµ¥ÀÌŸÀÇ ÂüÁ¶´Â %FORM¸¦ ÅëÇØÀÌ·ç¾îÁø´Ù´Â °Í¿¡ ÁÖÀÇÇϱ⠹ٶõ´Ù.

11~13
Æû¿¡¼­ µ¥ÀÌÅͺ£À̽ºÀÇ À̸§À» ÁÖÁö ¾ÊÀº °æ¿ì, µ¥ÀÌÅͺ£À̽ºÀÇ ¸ñ·Ï°ú °Ë»öÆûÀ» Ãâ·ÂÇÏ´Â SearchForm() ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.

$dbh->selectdb($FORM{'database'};
ÆûÀ» ÅëÇØ µ¥ÀÌÅͺ£À̽ºÀÇ À̸§ÀÌ Àü´ÞµÈ °æ¿ì, ÇØ´ç µ¥ÀÌÅͺ£À̽º¸¦ ¼±ÅÃÇÑ´Ù.

$FORM{'query'} =~ s/[\cM | \n]/ /g;
»ç¿ëÀÚ ÀԷ¿¡ Æ÷ÇÔµÈ °³Ç๮ÀÚ¸¦ Á¦°ÅÇÑ´Ù. ¿©±â¼­ \cMÀº Ctrl-MÀ» ÀǹÌÇϸç, »ç¿ëÀÚÀÇ Å¬¶óÀ̾ðÆ®°¡ Windogs 95³ª Windogs NTÀÎ °æ¿ì °³Ç๮ÀÚ¿Ü¿¡ Ctrl-MÀ» Æ÷ÇÔÇϱ⠶§¹®¿¡ »ðÀÔµÈ ºÎºÐÀÌ´Ù.

$sth = $dbh->query($FORM{'query'});
½ÇÁ¦ »ç¿ëÀÚÀÇ ÁúÀÇ°¡ ¼öÇàµÇ´Â ºÎºÐÀÌ´Ù. ÀÌ °ÍÀº msql ¸ð´ÏÅÍ ÇÁ·Î±×·¥¿¡¼­ '\g'¸¦ ÀÔ·ÂÇÑ °Í°ú µ¿ÀÏÇÑ ¿ªÇÒÀ» ÇÑ´Ù.

19~22
¾Õ¼­ ¾ð±ÞÇÑ °Íó·³ ÁúÀÇ°¡ Á¤»óÀûÀ¸·Î ¼öÇàµÇ¾ú´ÂÁö¸¦ °Ë»çÇÏ´Â ºÎºÐÀÌ´Ù. SQL ¹®»óÀÇ ¿À·ù·Î ÁúÀÇ°¡ ¼öÇàµÇÁö ¾ÊÀº °æ¿ì CgiDie()¿Í $dbh->errmsg¸¦ ÀÌ¿ëÇؼ­ ÇØ´ç ¿À·ù ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÑ´Ù.

24~28
create, drop, insert, update, delete¿Í °°ÀÌ Row µ¥ÀÌÅ͸¦ ¸®ÅÏÇÏÁö ¾Ê´Â ÁúÀÇÀÇ °æ¿ì, ÁúÀǼöÇà °á°ú¸¦ ¸®ÅÏÇÏ´Â ¹®ÀåÀÌ´Ù.

while(@row = $sth->fetchrow)
$sth->fetchrow¸¦ ÀÌ¿ëÇؼ­ ÇÑÇ྿ °¡Á®¿Í ¹è¿­ @row¿¡ ÀúÀåÇÏ´Â ¹®ÀåÀÌ´Ù. Perl¿¡¼­´Â Á¶°Ç¿¬»êÀÚ°ú ¿Í¾ßÇÏ´Â ºÎºÐ¿¡ ÇҴ翬»êÀÚ°¡ ¿Ã ¼ö ÀÖÀ¸¸ç, ÀÌ °æ¿ì Row µ¥ÀÌÅ͸¦ °¡Á®¿Ã ¼ö ÀÖ´ÂÇÑ ÂüÀÌ´Ù. ÀÏ´Ü µ¥ÀÌÅ͸¦ °¡Á®¿À¸é dataseek´Â ÀÚµ¿À¸·Î 1¾¿Áõ°¡ÇÑ´Ù.

$row[$_] = '&nbsp;' if($row[$_] eq '');
°¡Á®¿Â µ¥ÀÌÅÍ°¡ Çʵ尪À» °®Áö ¾ÊÀº °æ¿ì, HTML Table¿¡¼­´Â Ç¥ÀÇ ¸ð¾çÀÌ ±úÁüÀ¸·Î ÀÌ °ÍÀ» ¸·±âÀ§ÇØ &nbsp;¸¦ ÇÒ´çÇÑ´Ù. ¿©±â¼­ &nbsp;´Â Non-breaking Space¸¦ ÀǹÌÇÏ¸ç °ø¹é¹®ÀÚ¸¦ Ãâ·ÂÇÏ´Â HTML ÄÚµåÀÌ´Ù.
46 : while(@row = $sth->fetchrow) {	#Ç¥ÀÇ ÇÑÁÙÀ» »ý¼º
47 : 	print "<tr>\n";
48 : 	for(0..$#row) {			# Ç¥ÀÇ ÇÑ ¼¿À» »ý¼º
49 : 		$row[$_] = '&nbsp;' if($row[$_] eq '');
50 : 		print "<td> $row[$_] </td>\n";
51 : 	}
52 : 	print "</tr>\n";
53 : }

31~57
°á°ú¸¦ HTML Ç¥·Î ¸¸µå´Â ºÎºÐÀÌ´Ù. ÀÚ¼¼ÇÑ °ÍÀº HTML ¸Å´º¾óÀ» ÂüÁ¶ÇÑ´Ù.

59~99
msql.cgi°¡ ÀÎÀÚ¾øÀÌ È£ÃâµÇ´Â °æ¿ì µî·ÏµÈ µ¥ÀÌÅͺ£À̽ºÀÇ ¸ñ·Ï°ú °Ë»öÆûÀ» ¸¸µå´Â ¼­ºê·çƾÀÌ´Ù. µî·ÏµÈ µ¥ÀÌÅͺ£À̽ºÀÇ ¸ñ·ÏÀº listdb.cgi¿¡¼­ »ý¼ºÇÑ°Í°ú µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î »ý¼ºÇÑ´Ù. °Ë»öÆûÀº Part I¿¡¼­ ¼³¸íÇÑ <FORM> °ü·Ã ű׸¦ ÀÌ¿ëÇÏ°í ÀÖ´Ù. ÀÚ¼¼ÇÑ »çÇ×Àº Part I¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.


´ÙÀ½±Û: Á¦ 11°­ - msqlperl - °Ë»ö (7850)1996-05-11
ÀÌÀü±Û: Á¦ 9°­ - msqlperl - relshow ±¸Çö (7088)1996-05-09

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



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