¾×Ƽºê½ºÄù¾î¿Í C#À» »ç¿ëÇÑ À¥ °Ô½ÃÆÇ ¸¸µé±â

¾×Ƽºê½ºÄù¾î

ÀÎÅͳÝÀÌ ³Î¸® º¸±ÞµÈ ¿äÁò, À¥ »çÀÌÆ®³ª ¾îÇø®ÄÉÀ̼ǿ¡¼­ HTML ¹®¼­¸¦ ÀÛ¼ºÇÏ´Â ±â´ÉÀº ´ç¿¬½ÃµÇ°í ÀÖ´Ù. ±×·¯³ª, Á¦´ë·Î µÈ HTML ¿¡µðÅ͸¦ ¸¸µé±â À§Çؼ­´Â ¸¹Àº ³ë·Â°ú ½ÃÇà Âø¿À°¡ ÇÊ¿äÇÒ »Ó¸¸ ¾Æ´Ï¶ó º°µµÀÇ °³¹ß ÀηÂÀ» HTML ¿¡µðÅÍ °³¹ß¿¡ ÅõÀÔÇÏ´Â °ÍÀº ¿©°£ ºÎ´ã½º·¯¿î ÀÏÀÌ ¾Æ´Ï´Ù. ³ª¸ð ¾×Ƽºê½ºÄù¾î ´Â ÀÌ·¯ÇÑ °³¹ß ´Ü°è¿¡¼­ÀÇ À§Çè ºÎ´ãÀº ÁÙ¿©Áָ鼭 ÀÌ¹Ì ³ª¸ð À¥¿¡µðÅÍ¿¡¼­ °ËÁõµÈ Ź¿ùÇÑ HTML ÆíÁý ±â¼úÀ» ´Ù¾çÇÑ È¯°æ¿¡¼­ Àû¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù.

³ª¸ð ¾×Ƽºê½ºÄù¾î ÀÇ °¡Àå Å« Ư¡Àº ActiveX ÄÁÆ®·Ñ Çü½ÄÀÇ HTML À§ÁöÀ¨ ¿¡µðÅͶó´Â Á¡. µû¶ó¼­, À¥ ¸ÞÀÏ, À¥ °Ô½ÃÆÇÀº ¹°·Ð, ÀÎÆ®¶ó³Ý ±â¹ÝÀÇ KMS/CRM/CMS ¼Ö·ç¼Ç, ³ª¾Æ°¡¼­ HTML ÀÛ¼º ±â´ÉÀÌ ÇÊ¿äÇÑ º°µµÀÇ ¾îÇø®ÄÉÀ̼ǰú °°ÀÌ HTML ÀÛ¼ºÀÌ ÇÊ¿äÇÑ ´Ù¾çÇÑ ºÐ¾ß¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Ù. ¹°·Ð À¥ ±â¹ÝÀÇ °Ô½ÃÆÇÀ̳ª ¸ÞÀÏ ½Ã½ºÅÛÀ» ¼³°èÇÒ °æ¿ì, ASP, PHP, JSP µîÀº ¹°·Ð À̹ø È£¿¡¼­ ´Ù·ê C#µî ´Ù¾çÇÑ ¾ð¾î ȯ°æ¿¡¼­µµ ¾×Ƽºê½ºÄù¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

À¥ °Ô½ÃÆÇÀÇ ÀüüÀûÀÎ ¼³°è

ÀϹÝÀûÀÎ À¥ °Ô½ÃÆÇ°ú´Â ´Þ¸® À̹ø È£¿¡ Á¦ÀÛÇÒ À¥ °Ô½ÃÆÇÀº ¾×Ƽºê½ºÄù¾î ¿Í C#ÀÇ Àû¿ëÀ» º¸¿©ÁÖ´Â ¿¹Á¦ÀÇ ¼º°ÝÀÌ °­Çϱ⠶§¹®¿¡ ±ÛÀ» ÀÛ¼ºÇÏ°í ÆíÁý/¼öÁ¤/»èÁ¦ÇÏ´Â °£´ÜÇÑ ±â´ÉÀ» °¡Áø´Ù. °³¹ß ȯ°æÀº Windows XP ÇÁ·ÎÆä¼Å³Î°ú MS-SQL ¼­¹ö, ±×¸®°í MS Visual Studio .NETÀÌ´Ù.

C#À¸·Î Á¦ÀÛÇÑ °Ô½ÃÆÇÀ» ±¸¼ºÇÏ´Â ¼Ò½º °¢°¢ÀÌ ÇÏ´Â ¿ªÇÒ°ú ¾×Ƽºê½ºÄù¾î¸¦ Àû¿ëÇÑ ¼Ò½º´Â ¾Æ·¡¿Í °°´Ù.

°Ô½ÃÆÇ ¼Ò½º

¾×Ƽºê½ºÄù¾î Àû¿ë

ÆÄÀϸí

±â´É

AS2Board.cs

°Ô½ÃÆÇÀ» À§ÇÑ Å¬·¡½º

¾øÀ½.

list.aspx

¸ñ·Ï º¸±â

¾øÀ½.

writeform.aspx

±Û¾²±â/´äº¯ÇÏ±â Æû

Àû¿ë.

read.aspx

±ÛÀбâ

¾øÀ½.

editform.aspx

¼öÁ¤ÇÏ±â Æû

Àû¿ë.

main.aspx

±Û¾²±â,/¼öÁ¤Çϱâ

¾øÀ½.

del.aspx

»èÁ¦Çϱâ

¾øÀ½.

 

À¥ °Ô½ÃÆÇÀÇ ±Û¾²±â ºÎºÐ

¾×Ƽºê½ºÄù¾î°¡ Àû¿ëµÈ °Ô½ÃÆÇ¿¡¼­ ÀÔ·ÂµÈ µ¥ÀÌÅÍÀÇ Ã³¸® ¹æ¹ýÀº ÀÏ¹Ý °Ô½ÃÆÇÀÇ Ã³¸® ¹æ¹ý°ú À¯»çÇÏ´Ù. ´Ù¸¸ ¾×Ƽºê½ºÄù¾î¿¡¼­ ÀÛ¼ºÇÑ ³»¿ëÀ» ÀúÀåÇÏ´Â °úÁ¤¿¡¼­ Â÷À̸¦ º¸ÀδÙ.

¼­¹ö¿¡¼­ÀÇ µ¥ÀÌÅÍ Ã³¸®

¾×Ƽºê½ºÄù¾î¿¡¼­ ó¸®ÇÏ´Â ÆÄÀÏÀÇ ÇüÅ´ ´ÙÀ½°ú °°´Ù.

1

µ¥ÀÌÅ͸¦ Á÷Á¢ DB(¶Ç´Â ÆÄÀÏ)¿¡ ÀúÀåÇÏ´Â ¹æ¹ý

2

MIME µðÄÚ´õ¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ ÆÄÀϰú º»¹®À¸·Î ºÐ¸®ÇÏ¿© ÀúÀåÇÏ´Â ¹æ¹ý

 

°Ô½ÃÆÇÀÇ °æ¿ì ÀÛ¼ºµÈ ºÐ¹®Àº ÅØ½ºÆ®À̹ǷΠ´Ü¼øÈ÷ HTML ű׸¦ ºÐ¸®Çϰųª Ư¼ö ±âÈ£ µîÀ» ó¸®ÇÏ¿© DB¿¡ ÀúÀå´Ù. ¸¸¾à ÷ºÎ ÆÄÀÏÀÌ ÀÖÀ» °æ¿ì À̸¦ DB¿¡ ³ÖÀ» ¼öµµ ÀÖ°í, º°µµÀÇ ¾÷·Îµå(Upload) µð·ºÅ丮¿¡ ¸¶·ÃµÈ ±ÔÄ¢¿¡ µû¶ó ÀúÀåÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù.

¾×Ƽºê½ºÄù¾î¿¡¼­ ¸¸µç µ¥ÀÌÅÍ´Â ÅØ½ºÆ®, HTML, MIME ÇüÅ·Π³ª´­ ¼ö ÀÖÀ¸¸ç, ±× Áß MIME ÇüŰ¡ ¾×Ƽºê½ºÄù¾îÀÇ ¸ðµç ±â´ÉÀ» Æ÷ÇÔÇϰí ÀÖ´Â °æ¿ì¶ó ÇÒ ¼ö ÀÖ´Ù. MIME ÇüÅ´ µ¥ÀÌÅÍ¿¡¼­ ¿©·¯ °¡Áö ÇüÅÂÀÇ ÆÄÀÏ, °³Ã¼, Ç÷¡½Ã ÆÄÀϰú º»¹® HTMLÀ» °°ÀÌ Àü¼Û¹ÞÀ» ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ¿Í °°ÀÌ MIME ÇüÅÂÀÇ µ¥ÀÌÅ͸¦ ¹Þ¾Æ¿Ã °æ¿ì ¾×Ƽºê½ºÄù¾î¸¦ Àû¿ëÇÏÁö ¾ÊÀº °Ô½ÃÆÇ¿¡¼­´Â µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¼ö ¾ø´Ù.

¾×Ƽºê½ºÄù¾î¸¦ Àû¿ëÇÏÁö ¾ÊÀº °Ô½ÃÆÇ

¸¸¾à MIME ÇüÅÂÀÇ µ¥ÀÌÅ͸¦ DB¿¡ ÀúÀåÇÑ´Ù¸é, Internet ExplorerÀÇ °æ¿ì MHT ÆÄÀÏÀ» Áö¿øÇÏÁö¸¸, ¸ðµç µ¥ÀÌÅÍÀÇ ³»¿ëÀ» Internet Explorer¿¡ Àü¼ÛÇÒ ¶§ HTTP Header¿¡ MIME Message ŸÀÔÀ¸·Î ÁÙ °æ¿ì µðÄÚµù(Decoding)ÇÏ¿© Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ƯÁ¤ÇÑ Æ÷¸Ë(Format)ÀÇ ÇüÅ·Π°Ô½Ã¹°À» Ç¥ÇöÇϱâ´Â ¾î·Æ´Ù. ¶ÇÇÑ DB¿¡¼­ º»¹®¿¡ ´ëÇÏ¿© °Ë»öÇÒ ¼ö ÀÖ´Â ¹æ¹ýµµ ¾ø´Ù. ¸¸¾à DB¸¦ MY-SQLÀ» »ç¿ëÇÏ´Â °æ¿ì¶ó¸é Full Text Search¸¦ ½ÇÇàÇϰųª, WhereÀýÀÇ like ±¸¹®À¸·Î °Ë»öÇϱⰡ ¾î·Æ±â ¶§¹®ÀÌ´Ù. ÀÌ·¸°Ô MIME µ¥ÀÌÅ͸¦ Á÷Á¢ DB¿¡ ÀúÀåÇϰųª, ÆÄÀÏ ÇüÅ·Πº¸°üÇÏ´Â ¹æ¹ýÀº ½Ã½ºÅÛÀÇ È¿À²À» ÁÁÁö ¾Ê°Ô ÇÏ´Â ¹æ¹ýÀÌ´Ù.

¾×Ƽºê½ºÄù¾î¸¦ Àû¿ëÇÑ °Ô½ÃÆÇ

°¡Àå ÀϹÝÀûÀ̸ç È¿À²ÀûÀÎ ¹æ½ÄÀº MIME µ¥ÀÌÅ͸¦ HTML º»¹®°ú ÷ºÎ ÆÄÀÏÀ» ºÐ¸®ÇÏ¿© ÀúÀåÇÏ´Â °ÍÀÌ´Ù. HTMLÀÇ °æ¿ìµµ DB¿¡ ÀúÀåÇÑ ÈÄ Ã·ºÎ ÆÄÀÏÀº º°µµÀÇ µð·ºÅ丮¿¡ ÀúÀåÇÏ´Â ¹æ¹ýÀ» ±ÇÀåÇÑ´Ù. ¸¸¾à ÷ºÎ ÆÄÀÏÀ» DB¿¡ ³ÖÀ» °æ¿ì ¸î°¡Áö DBÀÇ ÇüÅ¿¡ µû¶ó ¿©·¯ °¡Áö ÀÛ¾÷À» ¼öÇàÇØ¾ß ÇÑ´Ù.)

¾×Ƽºê½ºÄù¾î¿¡¼­ MIME Encoded Data¸¦ Internet Explorer·Î Àü´Þ¹Þ¾Æ¼­ À̸¦ Form Data·Î À¥ ¼­¹ö¿¡ Àü´ÞÇϸé, À¥ ¼­¹ö´Â ¼­¹ö»çÀÌµå ½ºÅ©¸³Æ®(Server-Side Script)¿¡¼­ ºÐ¸®ÇÏ´Â ÀÛ¾÷À» ÅëÇØ¼­ HTML°ú Æ÷ÇÔµÈ ÆÄÀÏ·Î ºÐ¸®ÇÑ´Ù. ÀÌ ¶§, HTMLÀº DB¿¡ ÀúÀåµÇ°í, Æ÷ÇÔµÈ ÆÄÀÏÀº File System¿¡ ÀúÀåÇÑ´Ù.

 

 

ÀϹÝÀûÀ¸·Î À¥ ÇÁ·Î±×·¡¹Ö¿¡¼­ »ç¿ëÇϰí ÀÖ´Â Æû Çʵå(Form Field)´Â <FORM> ű׾ȿ¡ Çʵ带 ÁöÁ¤Çϰí, Æû(Form)ÀÇ Àü¼Û¹æ½ÄÀ¸·Î POST, GET À¸·Î ÁöÁ¤ÇÏ¸é ¼­¹ö»çÀ̵å(Server-Side) ½ºÅ©¸³Æ®ÀÇ Á¾·ù¸¶´Ù ¾à°£ÀÇ Â÷À̴ ÀÖÁö¸¸ ÀÚµ¿ÀûÀ¸·Î ½ºÅ©¸³Æ®¸¦ Àü¼Û¹ÞÀ» ¼ö ÀÖ´Â ÇüÅÂÀÌ´Ù.

ÇÏÁö¸¸ ¾×Ƽºê½ºÄù¾î¸¦ »ç¿ëÇÒ °æ¿ì Æû°ú °°Àº º¹ÀâÇÑ ÀÛ¾÷À» °ÅÄ¡Áö ¾Ê°í, ¹Ù·Î µ¥ÀÌÅÍ °ªÀ» Àü´ÞÇÒ ¼ö ÀÖ´Ù. C#¿¡¼­µµ ¾×Ƽºê½ºÄù¾î¸¦ Àû¿ëÇÏ´Â °ÍÀº ¸î ÁÙÀÇ °£´ÜÇÑ Äڵ带 ÀÔ·ÂÇÔÀ¸·Î½á ÀÌ·ç¾îÁø´Ù.

¼Ò½º¿¡¼­ÀÇ Ã³¸®

¾Æ·¡´Â À§¿Í °°Àº °úÁ¤À» ½ÇÁ¦·Î ±¸ÇöÇÑ C# ¼Ò½º ÀϺηΠAS2Board.csÀÇ WriteBoard¿Í DecodeMIMIE ÇÔ¼öÀÌ´Ù. WriteBoard ÇÔ¼ö´Â DB¿¡ °Ô½Ã¹°À» ÀÔ·ÂÇϰí, DecodeMIME ÇÔ¼ö¿¡¼­ MIME µ¥ÀÌÅ͸¦ µðÄÚµåÇÏ´Â ¿ªÇÒÀ» °¢°¢ ÇØ ÁØ´Ù.

<AS2Board.csÀÇ WriteBoardÇÔ¼ö>

public bool WriteBoard(string author, string subject, string homepage, string email, string password, string MIMEContent)

                {

                        int msgno = 0;

                        string strSql;

                        string contents;

                        SqlCommand cmd;

                        SqlDataReader reader;

 

                        OpenDataBase();

                        strSql = "select max(msgno) from board";

                        cmd = new SqlCommand(strSql, con);

                        reader = cmd.ExecuteReader();

                        reader.Read();

 

                        if(reader.IsDBNull(0))

                                msgno = 0;

                        else

                                msgno = reader.GetInt32(0);

 

                        reader.Close();

                        msgno++;

 

                        contents = DecodeMIME(MIMEContent, msgno.ToString());

                        contents = Replace(contents, "'", "\\'");

 

                        strSql = "insert into board (msgno, author, email, homepage, subject, msgbody, password, p_id, wtime) values (";

                        strSql += msgno.ToString() + ", ";

                        strSql += "'" + author + "', ";

                        strSql += "'" + email + "', ";

                        strSql += "'" + homepage + "', ";

                        strSql += "'" + subject + "', ";

                        strSql += "'" + contents + "', ";

                        strSql += "'" + password + "', ";

                        strSql += msgno.ToString() + ", ";

                        strSql += "GETDATE());";

 

                        cmd.CommandText = strSql;

                        cmd.ExecuteNonQuery();

                        reader.Close();

                        return true;

                }

<as2BoardÀÇ DecodeMIMEÇÔ¼ö>

private string DecodeMIME(string MIMEContent, string msgno)

                {

                        string bodymsg;

                        string dataFolder;

                        string dataUrl;

                        DirectoryInfo di;

                        FileInfo[] afi;

                        MIMEObjectClass mime = new MIMEObjectClass();

 

                        // save included file

                        dataFolder = uploadpath + "\\" + msgno;

                        dataUrl = uploadURL + "/" + msgno;

                        Directory.CreateDirectory(dataFolder);

                        mime.Decode(MIMEContent, dataFolder);

 

                        // file reading

                        FileStream freader = File.OpenRead(dataFolder + "\\noname.htm");

                        byte[] buffer = new byte[freader.Length];

                        freader.Read(buffer, 0, (int)freader.Length);

                        bodymsg = Encoding.Default.GetString(buffer);

                        freader.Close();

                        File.Delete(dataFolder + "\\noname.htm");

                        di = new DirectoryInfo(dataFolder);

                        afi = di.GetFiles();

 

                        foreach(FileInfo fi in afi)

                        {

                                bodymsg = Replace(bodymsg, fi.Name, uploadURL + "/" + msgno + "/" + fi.Name);

                        }

 

                        return bodymsg;

                }

À§ÀÇ ¼Ò½º¿¡¼­ msgnoÀº ÇöÀç ÀúÀåÇÒ °Ô½Ã¹°ÀÇ ÀÏ·Ã ¹øÈ£ÀÌ´Ù. °Ô½ÃÆÇ¿¡¼­´Â ÀÌ ÀÏ·Ã ¹øÈ£¸¦ »ç¿ëÇØ¼­ ÆÄÀÏ ÀúÀå¿ë µð·ºÅ丮 ¾Æ·¡¿¡ °Ô½Ã¹°À» ÀúÀåÇÒ µð·ºÅ丮¸¦ ¿¡ ¸¸µç´Ù. ±×¸®°í ÷ºÎ ÆÄÀÏÀ» ÀÌ µð·ºÅ丮¿¡ ÀúÀåÇϰí, HTML ¼Ò½º¿¡ ÀÖ´Â ÆÄÀÏÀÇ ÀúÀå °æ·Î¸íÀ» ½ÇÁ¦·Î ÆÄÀÏÀ» ÀúÁ¤ÇÑ °æ·Î¸íÀ¸·Î ¹Ù²Û´Ù. ±×·¯¹Ç·Î HTML ÆÄÀÏÀ» »ç¿ëÀÚ¿¡°Ô Àü¼ÛÇÒ ¶§, Ưº°È÷ ¼Ò½º¸¦ ó¸®ÇÏÁö ¾Ê¾Æµµ ÷ºÎ ÆÄÀÏÀ» º¸¿©ÁÙ ¼ö ÀÖ´Ù.

NamoMIMIE ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÑ MIME µðÄÚµù

C#À» ±â¹ÝÀ¸·Î ÇÏ´Â À̹ø ¿¹Á¦¿¡¼­ ½ÇÁúÀûÀÎ µðÄÚµùÀº ¾×Ƽºê½ºÄù¾î¿Í ÇÔ²² ¹èÆ÷ÇÏ´Â NamoMIME COM Object¸¦ »ç¿ëÇÑ´Ù. ÀÌ ¿ÀºêÁ§Æ®¸¦ ºñÁÖ¾ó ½ºÆ©µð¿À¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ.¿ì¼± Solution Exeplorer¿¡¼­ [Add Reference]¸¦ ¼±ÅÃÇÑ´Ù.

[Add Reference] À©µµ¿ì¿¡¼­ [COM] ÅÇÀ» ¼±ÅÃÇϸé À§¿Í °°ÀÌ NamoMIME 1.0 Type Library¸¦ ¼±ÅÃÇÏ¿© Selected Components ¿¡ Ç¥½ÃÇϵµ·Ï ÇÑ´Ù. ¸¸¾à ¸®½ºÆ®¿¡ NamoMIME 1.0 Type Library Ç׸ñÀÌ º¸ÀÌÁö ¾ÊÀ¸¸é Browse¸¦ Ŭ¸¯ÇÏ¿© Á÷Á¢ NamoMIME.dllÀ» ¼±ÅÃÇÑ´Ù.

[Add Reference] À©µµ¿ì¿¡¼­ NamoMIME 1.0 Type Library¸¦ ¼±ÅÃÇϰí [OK]¹öưÀ» ´©¸£¸é, ¾Æ·¡¿Í °°ÀÌ Soluction ExplorerÀÇ Referece¿¡ NAMOMIMELib°¡ º¸ÀδÙ.

NamoMIME.DLLÀ» »ç¿ëÇÒ Áغñ°¡ ³¡³µ´Ù. ÀÌÁ¦ ÀÛ¼ºÇÑ À¥ °Ô½ÃÆÇ ¼Ò½º¿¡ NAMO MIMELibÀÇ ³×ÀÓ½ºÆäÀ̽º¸¦ ¼±¾ðÇÏ¸é µÈ´Ù. ¾Æ·¡´Â NamoMIME.DLLÀ» »ç¿ëÇÑ °£´ÜÇÑ MIME µðÄÚµùÀÇ ¿¹ÀÌ´Ù.

using NAMOMIMELib;

<Áß·«>

public string TestDecodeMIME(string MIMEData, string decodeFolder)

{

MIMEObjectClass mime = new MIMEObjectClass();

Directory.CreateDirectory(decodeFolder);

mime.Decode(MIMEData, decodeFolder);

}

¾Æ·¡´Â ÀÚÁÖ »ç¿ëÇÏ´Â MIMEObjectClassÀÇ ÇÔ¼öµéÀÌ´Ù. º¸´Ù ÀÚ¼¼ÇÑ ³»¿ëÀº ³ª¸ð ÀÎÅÍ·¢Æ¼ºêÀÇ °³¹ßÀÚ ÆäÀÌÁö¸¦ ÂüÁ¶Çϵµ·Ï ÇÑ´Ù.

void BeginDecodeEx(string mime)

MIME µðÄÚµù Áغñ ÀÛ¾÷À» ÇÑ´Ù. ¹Ýµå½Ã EndDecodeEx() ÇÔ¼ö¿Í ½ÖÀ¸·Î »ç¿ëµÇ¾î¾ß ÇÑ´Ù. ÀÌ ÇÔ¼ö¸¦ ½ÇÇàÇÑ ÈĺÎÅÍ DecodeEx(), GetItemCount() ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö °¡ ÀÖ´Ù.

void EndDecodeEx()

MIME µðÄÚµùÀ» ³¡³½´Ù.

int GetItemCount()

MIME ÆÄÀÏ¿¡ Æ÷ÇÔµÈ ItemÀÇ °³¼ö¸¦ °è»êÇÑ´Ù. BeginDecodeEx() ½ÇÇà ÈÄ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

string DecodeEx(int index, int type)

MIME ¿¡ Æ÷ÇÔµÈ ³»¿ëÁß ÁöÁ¤µÈ index¿¡ ÇØ´çÇÏ´Â ³»¿ëÀÇ Á¤º¸¸¦ °¡Á®¿Â´Ù.

  • index : MIME ¿¡ Æ÷ÇÔµÈ µ¥ÀÌÅÍÀÇ À妽º. (index ´Â 0ºÎÅÍ ½ÃÀÛ´Ù.)
  • type : °¡Á®¿Ã Á¤º¸ÀÇ Á¾·ù. (0 : CID, 1 : ÆÄÀϸí, 2 : ÆÄÀÏÀÇ ³»¿ë)
  • return value : index¿Í type¿¡ ÁöÁ¤µÈ ³»¿ë¿¡ µû¸¥ °ªÀ» ¹Ýȯ.

 

À¥ °Ô½ÃÆÇÀÇ ±Û¾²±â ÀÔ·ÂÆû¿¡ ¾×Ƽºê½ºÄù¾î Àû¿ë

C# ¼Ò½º¿¡ ¸î ÁÙÀÇ °£´ÜÇÑ Äڵ带 ÀÔ·ÂÇϱ⸸ ÇÏ¸é ¾×Æ¼ºê½ºÄù¾î¸¦ ½±°Ô Àû¿ëÇÒ ¼ö ÀÖ´Ù. ±Û¾²±â ÀÔ·Â Æû ¼Ò½º¿¡¼­ ¾×Ƽºê½ºÄù¾î¸¦ ³ªÅ¸³¾ ºÎºÐ¿¡ ÀÔ·Â Äڵ带 ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù.

±Û¾²±â ÀÔ·ÂÆû ±¸Á¶

 

<HTML>

 <HEAD>

<TITLE>±Û¾²±â</TITLE>

...................

<BODY>

...................

<SCRIPT Language =" Javascript">

...................  //±Û¾²±â ¼Ò½º¿¡ Äõ¸®¸¦ º¸³¾ ¼ö Àִ ȯ°æ ¼³Á¤

</SCRIPT>

 

<TABLE>

<FORM>

   <TR>

          <TD>

...................  // ±Û¾´ÀÌ, À̸ÞÀÏ, Á¦¸ñ µî ÀÇ FORMÀ» ÁöÁ¤ ¹× ¾×Ƽºê½ºÄù¾î »ðÀÔ

          </TD>

    </TR>

</FORM>   //±Û¾²±â ÀÔ·ÂÆû ¿Ï·á

</TABLE>

 

</BODY>

</HEAD>

</HTML>

 

ÀÔ·ÂÇÑ ÀÚ·á Ã³¸®

¾×Ƽºê½ºÄù¾î ´Â Ç¥ÁØ Æû Çʵ尡 ¾Æ´Ï±â ¶§¹®¿¡ ÆûÀ» Àü¼ÛÇÏ´õ¶óµµ ¾×Ƽºê½ºÄù¾î¿¡¼­ ÀÛ¼ºÇÑ ³»¿ëÀº À¥ ¼­¹ö·Î Àü¼ÛÇÏÁö ¾Ê´Â´Ù. µû¶ó¼­ ÆûÀ» Àü¼ÛÇϱâ Àü¿¡ ÄÁÆ®·Ñ¿¡¼­ ÀÛ¼ºÇÑ ³»¿ëÀ» À¥ ¹®¼­ÀÇ Ç¥ÁØ ÆûÇʵå·Î º¹»çÇÏ´Â °úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ·¸°Ô Çϸé À¥ ¼­¹ö¿¡¼­´Â Ç¥ÁØ ÆûÇʵ带 ÅëÇØ¼­ ³»¿ëÀ» Àü¼Û ¹Þ¾Æ ó¸®ÇÒ ¼ö ÀÖ´Ù.

C#¿¡¼­´Â ¾Æ·¡¿Í °°ÀÌ À¥ ¹®¼­ÀÇ ¼û±èÇʵå(HIDDEN type)¿¡ ÆíÁý ³»¿ëÀ» »ðÀÔÇϰí, ÆûÀÇ ³»¿ëÀ» ¼­¹ö·Î Àü¼ÛÇÑ´Ù.

<writeform.aspxÀÇ ÀϺÎ>

function Save()

                {

                        var objForm = document.writeform;

                        objForm.msgbody.value = document.as2.MIMEValue;

                        objForm.action = "main.aspx?mode=write";

                        objForm.submit();

                }

±Û¾²±â ÀÔ·Â Æû¿¡ ¾×Ƽºê½ºÄù¾î¸¦ »ðÀÔÇÏ´Â ÇüÅÂ(writeform.aspx)

<%@ Page language="c#"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<HTML>

        <HEAD>

                <title>Write article</title>

                <meta content="C#" name="CODE_LANGUAGE">

        </HEAD>

        <body MS_POSITIONING="GridLayout">

                <script language="jscript">

                function Save()

                {

                        var objForm = document.writeform;

                        objForm.msgbody.value = document.as2.MIMEValue;

                        objForm.action = "main.aspx?mode=write";

                        objForm.submit();

                }

                

                function List()

                {

                        var objForm = document.writeform;

                        objForm.action = "list.aspx";

                        objForm.submit();

                }

                

                function Cancel()

                {

                        history.go(-1);

                }

                </script>

                <form name="writeform" method="post">

                        <table style="WIDTH: 644px; HEIGHT: 156px" border="0">

                                <tr>

                                        <td style="WIDTH: 90px">Homepage</td>

                                        <td>http:// <input style="WIDTH: 479px; HEIGHT: 22px" type="text" size="74" name="Homepage"></td>

                                </tr>

                                <tr>

                                        <td style="WIDTH: 90px; HEIGHT: 26px">E-Mail</td>

                                        <td style="HEIGHT: 26px"><input style="WIDTH: 391px; HEIGHT: 22px" type="text" size="59" name="EMail"></td>

                                </tr>

                                <TR>

                                        <TD style="WIDTH: 90px">Author</TD>

                                        <TD><INPUT style="WIDTH: 188px; HEIGHT: 22px" type="text" size="26" name="Author"></TD>

                                </TR>

                                <TR>

                                        <TD style="WIDTH: 90px">Subject</TD>

                                        <TD><INPUT style="WIDTH: 531px; HEIGHT: 22px" type="text" size="83" name="Subject"></TD>

                                </TR>

                                <TR>

                                        <TD style="WIDTH: 90px" colSpan="2">

<!-- ¾×Ƽºê½ºÄù¾î »ðÀÔ ½ÃÀÛ-->

<script language="javascript" src="/namo/ActiveSquare2008.js"></script>

<!-- ¾×Ƽºê½ºÄù¾î »ðÀÔ ³¡ -->

                                        </TD>

                                </TR>

                                <TR>

                                        <TD style="WIDTH: 90px">Password</TD>

                                        <TD><INPUT type="password" name="Password"> <input type="hidden" name="msgbody">

                                        </TD>

                                </TR>

                        </table>

                        <A href="javascript:Save()">Save Article</A> <A href="javascript:List()">List

                                Article</A> <A href="javascript:Cancel()">Cancel</A>

                </form>

        </body>

</HTML>

 

À¥ °Ô½ÃÆÇ¿¡¼­ °Ô½Ã¹° ¼öÁ¤Çϱâ

°Ô½Ã¹°À» ¼öÁ¤ÇÏ´Â ºÎºÐÀº °Ô½ÃÆÇÀÇ ±Û¾²±â¿Í´Â ´Þ¸® ÀÌ¹Ì DBµî¿¡ ÀúÀåÇØ ³õÀº ³»¿ëÀ» ¾×Ƽºê½ºÄù¾î ·Î Àü´ÞÇÏ´Â °úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. µû¶ó¼­, ±ÛÀ» ¼öÁ¤Çϱâ Àü¿¡ ¿ì¼± DB¿¡¼­ ¼öÁ¤ÇÒ HTML ÆÄÀÏÀ» °¡Á®¿Í¾ß ÇÑ´Ù.

¿ì¼± ¼öÁ¤ÇÒ HTMLÀ» ¼öÁ¤ ÆûÀÇ ¼û±è(Hidden) ¼Ó¼º Çʵ忡 ´ëÀÔÇÏ¿© HTML ÆÄÀÏÀ» ¸¸µé¾î Àü¼ÛÇϰí, Ŭ¶óÀÌ¾ðÆ®¿¡¼­ HTMLÀ» ·Îµù(Loading)ÇÒ ¶§ ¼û±è ¼Ó¼º ÇʵåÀÇ ³»¿ëÀ» ´Ù½Ã ¾×Ƽºê½ºÄù¾î¿¡ ÁöÁ¤ÇÑ´Ù. ÀÌ ¶§ ÷ºÎ ÆÄÀÏÀÇ °æ·Î¸íÀº ÀÌ¹Ì ¼­¹ö¿¡ ÀúÀåÇÑ ÆÄÀÏÀÇ °æ·Î¸íÀ¸·Î º¯È¯µÇ¾î Àֱ⠶§¹®¿¡ ¾×Ƽºê½ºÄù¾î¿¡¼­ HTMLÀ» ·ÎµùÇÏ°Ô µÇ¸é ¾×Ƽºê½ºÄù¾î°¡ ÀÌ ÆÄÀÏÀ» Á÷Á¢ ·ÎµùÇÑ´Ù. µû¶ó¼­, ÷ºÎ ÆÄÀÏ¿¡ ´ëÇÑ º°µµÀÇ Ã³¸®´Â ÇÊ¿äÇÏÁö ¾Ê´Ù.

°Ô½Ã¹° ¼öÁ¤À» ¸¶Ä¡°í Àü¼ÛÇÒ ¶§´Â óÀ½ ÀÛ¼ºÇÑ ±ÛÀ» Àü¼ÛÇÏ´Â °Í°ú µ¿ÀÏÇÑ ¹æ¹ýÀ» »ç¿ëÇϸç, ¼­¹ö¿¡ ÀÖ´Â ÆÄÀϵµ ´Ù½Ã ¾×Ƽºê½ºÄù¾î°¡ MIME ÇüÅ·ΠÀÎÄÚµùÇÏ¿© ¼­¹ö¿¡ Àü¼ÛÇÑ´Ù.

 

 

¼öÁ¤ ÆûÀÇ ÇÊµå ±¸¼º

¼öÁ¤ ÆûÀÇ ±¸¼ºÀº ¾²±â ÆûÀÇ ±¸¼º°ú´Â ´Þ¸® ¼û±è Çʵ尡 µÎ °³ÀÌ´Ù.

¿¹¸¦ µé¾î, ¼öÁ¤ Æû¿¡¼­ ³»¿ëÀ» ÀÛ¼ºÇÑ ÈÄ, ¾ÏÈ£¸¦ ÀÔ·ÂÇϰí ÀúÀå ´ÜÃ߸¦ ´­·¶Áö¸¸ ¾ÏÈ£°¡ Ʋ¸± °æ¿ì °Ô½ÃÆÇÀº ¿ø·¡ÀÇ ³»¿ëÀ» ´Ù½Ã Ãâ·ÂÇØ¾ß ÇÑ´Ù. ±×·±µ¥, ¸¸ÀÏ Çʵ尡 Çϳª »ÓÀÌ°í ±× Çʵ忡´Â ÀÌ¹Ì ¼öÁ¤ÇÑ ³»¿ë¸¸ µé¾îÀÖ´Ù¸é ¿ø·¡ÀÇ ³»¿ëÀ» DB¿¡¼­ °¡Á®¿Í¾ß ÇÏ´Â ¹®Á¦°¡ »ý±ä´Ù. ÀÌ·± ½ÄÀ¸·Î DB¸¦ ºó¹øÇÏ°Ô ¿¬°áÇÑ´Ù¸é DBÀÇ ÀüüÀûÀÎ ¼º´ÉÀº ÀúÇ쵃 ¼ö¹Û¿¡ ¾ø´Ù.

µû¶ó¼­, ù¹øÂ° ¼û±è Çʵå´Â ¾×Ƽºê½ºÄù¾î°¡ º¸¿©ÁÙ °ª, Áï ¼öÁ¤Çϱâ ÀüÀÇ °Ô½Ã¹°  ³»¿ëÀ» °¡Áö°í ÀÖ°í, ´Ù¸¥ ÇϳªÀÇ Çʵå´Â ¼öÁ¤ÇÑ ´ÙÀ½ DB¿¡ ÀúÀåÇÒ ³»¿ëÀ» °¡Áö°í À־, ¾ÏÈ£°¡ ´Ù¸¦ °æ¿ì¿¡´Â ¼öÁ¤Çϱâ ÀüÀÇ °Ô½Ã¹° ³»¿ëÀ» ¾×Ƽºê½ºÄù¾î·Î µ¹·ÁÁÖ°Ô ÇÑ´Ù.

´ÙÀ½Àº ¼öÁ¤ Æû(editform.aspx) ¼Ò½ºÀÇ ÇÑ ºÎºÐÀÌ´Ù.

 

<FORM Method="POST" name="editform">

<INPUT type="text" name="homepage" size=44>

<INPUT type="text" name="email" size=50>

<INPUT type="text" name="author">

<INPUT type=hidden name="contents">

 

<!-- ¾×Ƽºê½ºÄù¾î »ðÀÔ ½ÃÀÛ-->

<script language="javascript" src="/namo/ActiveSquare2008.js"></script>

<!-- ¾×Ƽºê½ºÄù¾î »ðÀÔ ³¡ -->

<INPUT type="password" name="pass" size=20 maxlength=20>

<FORM>

 

¼û±è Çʵ忡¼­ contents´Â ¿ø·¡ÀÇ °Ô½Ã¹° ³»¿ëÀ» ÀúÀåÇÏ´Â ÇʵåÀÌ´Ù. contentsÇʵ忡 ³»¿ëÀ» ÀúÀåÇÒ ¶§ ¿øº» µ¥ÀÌÅÍ´Â HTMLÀÓÀ» ÁÖÀÇÇØ¾ß ÇÑ´Ù. HTML ű׷Π±¸¼ºµÇ¾î ÀÖÀ¸¹Ç·Î ³»¿ë¿¡´Â ¼Ò½º¿¡´Â HTML ű׵éÀÌ Æ÷ÇԵǾî ÀÖ´Ù. HTML ű׷ΠÀÎÇØ ¼öÁ¤ ÆûÀÇ ÀüüÀûÀÎ µðÀÚÀΰú ³»¿ëÀÌ º¯°æµÉ ¼ö ÀÖÀ¸¹Ç·Î ű׿¡ ´ëÇÑ Á¤È®ÇÑ Ã³¸®¸¦ ÇØÁÖ¾î¾ß ÇÑ´Ù.

ÀÌ·¸°Ô contents Çʵ尡 ¼öÁ¤ÇÒ ¹®¼­ÀÇ HTML ¼Ò½º¸¦ °¡Áö°í ÀÖÀ» ¶§ ÁÖÀÇÇÒ °ÍÀº contents Çʵ忡 HTML ¼Ò½º¸¦ ±×´ë·Î ÀÔ·ÂÇÏ°Ô µÇ¸é ±× °ªÀ» ºê¶ó¿ìÀú°¡ ÇØ¼®Çؼ­ °á°ú¸¦ È­¸é¿¡ Ç¥½ÃÇÑ´Ù´Â Á¡ÀÌ´Ù. ÀÌ·± ¹®Á¦Á¡À» ¾ø¾Ö±â À§Çؼ­ HTML¿¡¼­ »ç¿ëÇÏ´Â "<" ¿Í ">"¸¦ HTML Ư¼ö ¹®ÀÚ Çü½ÄÀÎ &lt;, &gt;·Î º¯È¯ÇÑ´Ù. ű׸¦ HTMLÀÇ Æ¯¼ö¹®ÀÚ·Î º¯°æÇÏ¿© ¾×Ƽºê½ºÄù¾î¿¡ Àü´ÞÇϸé, ¾×Ƽºê½ºÄù¾î´Â &lt; ¿Í &gt¸¦ °¢°¢ "<"¿Í ">"·Î º¯È¯Çؼ­ ÀνÄÇϹǷΠ¿øº» ³»¿ëÀ» Ç¥½ÃÇÒ ¼ö ÀÖ´Ù.

ÀÌ·¸°Ô HTML ű׸¦ Ư¼ö ¹®ÀÚ·Î º¯°æÇÏ´Â ºÎºÐÀÇ ¼Ò½º´Â ´ÙÀ½°ú °°´Ù.

<editform.aspxÀÇ ÀϺÎ>

msgbody = reader.GetString(reader.GetOrdinal("msgbody"));

... (Áß·«) ...

msgbody = board.ConvertHtmlChars(msgbody);

¿¹¸¦ µé¾î ¿¹Á¦ 1°ú °°Àº HTML ¼Ò½º¸¦ contents¿¡ ÀÔ·ÂÇÏ·Á¸é ¿¹Á¦ 2¿Í °°Àº ¼­¹ö »çÀÌµå ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¿¹Á¦ 1

<html>

 

<head>

<meta http-equiv="content-type" content="text/html; charset=euc-kr">

<title>Á¦¸ñ ¾øÀ½</title>

</head>

 

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">

<p>&nbsp;</p>

</body>

 

</html>

¿¹Á¦ 2

 

<...Áß·«...>

<INPUT type="hidden" name="contents" value="&lt;html&gt;

&nbsp;&lt;head&gt;

&lt;meta http-equiv=&quot;content-type&quot;

xt/html; charset=euc-kr&quot;&gt;

&lt;title&gt;Á¦¸ñ ¾øÀ½&lt;/title&gt;

&lt;/head&gt;

&nbsp;

&lt;body bgcolor=&quot;white&quot; text=&quot;black&quot;

quot; vlink=&quot;purple&quot; alink=&quot;red&quot;&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;/body&gt;

&nbsp;

&lt;/html&gt;

 

">

<...Áß·«...>

 

±×·¯³ª, À¥ °Ô½ÃÆÇ¿¡¼­´Â HTML ¼Ò½ºÀÇ ³»¿ëÀÌ Ç×»ó °¡º¯ÀûÀ̹ǷΠHTML ¼Ò½º¸¦ º¯¼ö·Î ó¸®ÇØ ÁÖ¾î¾ß ÇÑ´Ù. µû¶ó¼­ ¾Æ·¡¿Í °°Àº ±¸Á¶ÀÇ C# ¼Ò½º¸¦ ¸¸µé¾î ÁÖ¾î¾ß ÇÑ´Ù.

<editform.aspxÀÇ ÀϺÎ>

<%@ Page language="c#"%>

<%@ import namespace="System.Data" %>

<%@ import namespace="System.Data.SqlClient" %>

<%@ import namespace="as2bbs" %>

<%

           ...

        msgbody = reader.GetString(reader.GetOrdinal("msgbody"));

           ...

        msgbody = board.ConvertHtmlChars(msgbody);

 

%>

        ...

                   <input type="hidden" name="msgbody">

                   <input type="hidden" name="contents" value="<%= msgbody %>""> 

¸¶Áö¸·À¸·Î contents¿¡ HTML ¼Ò½º¸¦ ÀÔ·ÂÇϰí, ±×·¸°Ô ÀÔ·ÂÇÑ ¼Ò½º¸¦ ¾×Ƽºê½ºÄù¾î·Î ³Ñ±â¸é ¾×Ƽºê½ºÄù¾î¿¡¼­ ³»¿ëÀ» Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. À̰ÍÀ» C#À¸·Î ±¸ÇöÇÏ¸é ¾Æ·¡¿Í °°´Ù.

<editform.aspxÀÇ ÀϺÎ>

 <script language="vbscript">

                        Sub as2_OnInitCompleted()

                                Dim fRef

                                Set fRef = document.editform

                                fRef.as2.InsertValue 0, fRef.contents.value, 1

                        End Sub

</script>

OnInitCompleted´Â ¾×Ƽºê½ºÄù¾î°¡ ÃʱâÈ­°¡ ³¡³ª°í Á¤»óÀûÀÎ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Â ÃÖÃÊÀÇ »óŸ¦ ¸»ÇÑ´Ù. ±×·¯¹Ç·Î ÀÌ ¸Þ½ÃÁö¿¡¼­ ÇÁ·Î±×·¡¹Ö ÇÏ±æ ¿øÇÏ´Â ÇüÅÂÀÇ Á¶ÀÛÀ» ÇÒ ¼ö ÀÖ´Ù.

¶ÇÇÑ »¡°£»öÀ¸·Î Ç¥½ÃÇÑ ºÎºÐÀÌ Æû(Form)ÀÇ contents Çʵ带 ¾×Ƽºê½ºÄù¾î¿¡ ´ëÀÔÇÏ´Â ºÎºÐÀÌ´Ù. ÁÖÀÇÇØ¾ß ÇÒ °ÍÀº ±Û¾²±â ÇüÅÂ¿Í °°ÀÌ ¾×Ƽºê½ºÄù¾î¿¡¼­ ³»¿ëÀ» °¡Á®¿Ã ¶§´Â ¾×Ƽºê½ºÄù¾îÀÇ MIME Value Property¸¦ ÀÌ¿ëÇßÁö¸¸ µ¥ÀÌÅÍ °ªÀ» Àü´ÞÇÒ ¶§´Â InsertValue Property¸¦ »ç¿ëÇÑ´Ù´Â Á¡ÀÌ´Ù. À̰ÍÀº ÇöÀç contents Çʵ尡 °¡Áö°í ÀÖ´Â °ªÀÌ ÀÏ¹Ý HTML°ú °°±â ¶§¹®ÀÌ´Ù. ¸¸¾à ¼­¹ö¿¡ MIME ÇüÅ·Π¸ðµç °ªÀÌ ÀúÀåµÇ¾î ÀÖ´Ù¸é ¾×Æ¼ºê½ºÄù¾î¿¡ MIME Value Property¿¡ °ªÀ» ´ëÀÔÇÏ¸é µÈ´Ù.

ÀÌ·¸°Ô ¿Ï¼ºÇÑ À¥ °Ô½ÃÆÇÀÇ ¼öÁ¤Çϱ⠼ҽº´Â ¾Æ·¡¿Í °°´Ù.

<editform.aspx>

<%@ Page language="c#"%>

<%@ import namespace="System.Data" %>

<%@ import namespace="System.Data.SqlClient" %>

<%@ import namespace="as2bbs" %>

<%

        string msgno;

        as2Board board = new as2Board();

        SqlDataReader reader;

        string msgbody;

        string homepage;

        string author;

        string email;

        string subject;

        

        msgno = Request.Params.Get("msgno");

        

        if(msgno == null)

                Response.End();

                

        reader = board.ReadMessage(System.Int32.Parse(msgno));

        subject = reader.GetString(reader.GetOrdinal("subject"));

        msgbody = reader.GetString(reader.GetOrdinal("msgbody"));

        homepage = reader.GetString(reader.GetOrdinal("homepage"));

        author = reader.GetString(reader.GetOrdinal("author"));

        email = reader.GetString(reader.GetOrdinal("email"));

        msgbody = board.ConvertHtmlChars(msgbody);

        reader.Close();

        board.CloseBoard();

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<HTML>

        <HEAD>

                <title>Write article</title>

                <meta content="C#" name="CODE_LANGUAGE">

        </HEAD>

        <body>

                <script language="vbscript">

                        Sub as2_OnInitCompleted()

                                Dim fRef

                                Set fRef = document.editform

                                fRef.as2.InsertValue 0, fRef.contents.value, 1

                        End Sub

                </script>

                <script language="jscript">

                function Save()

                {

                        var objForm = document.editform;

                        objForm.msgbody.value = document.as2.MIMEValue;

                        objForm.action = "main.aspx?mode=edit&msgno=<%= msgno %>";

                        objForm.submit();

                }

                

                function List()

                {

                        var objForm = document.editform;

                        objForm.action = "list.aspx";

                        objForm.submit();

                }

                

                function Cancel()

                {

                        history.go(-1);

                }

                </script>

                <form name="editform" method="post">

                        <table style="WIDTH: 644px; HEIGHT: 156px" border="0">

                                <tr>

                                        <td style="WIDTH: 90px">Homepage</td>

                                        <td>http:// <input style="WIDTH: 479px; HEIGHT: 22px" type="text" size="74" name="Homepage" value="<%= homepage %>"></td>

                                </tr>

                                <tr>

                                        <td style="WIDTH: 90px; HEIGHT: 26px">E-Mail</td>

                                        <td style="HEIGHT: 26px"><input style="WIDTH: 391px; HEIGHT: 22px" type="text" size="59" name="EMail" value="<%= email %>"></td>

                                </tr>

                                <TR>

                                        <TD style="WIDTH: 90px">Author</TD>

                                        <TD><INPUT style="WIDTH: 188px; HEIGHT: 22px" type="text" size="26" name="Author" value="<%= author %>"></TD>

                                </TR>

                                <TR>

                                        <TD style="WIDTH: 90px">Subject</TD>

                                        <TD><INPUT style="WIDTH: 531px; HEIGHT: 22px" type="text" size="83" name="Subject" value="<%= subject %>"></TD>

                                </TR>

                                <TR>

                                        <TD style="WIDTH: 90px" colSpan="2">

<!-- ¾×Ƽºê½ºÄù¾î »ðÀÔ ½ÃÀÛ-->

<script language="javascript" src="/namo/ActiveSquare2008.js"></script>

<!-- ¾×Ƽºê½ºÄù¾î »ðÀÔ ³¡ -->

                                        </TD>

                                </TR>

                                <TR>

                                        <TD style="WIDTH: 90px">Password</TD>

                                        <TD><INPUT type="password" name="Password">

                                        <input type="hidden" name="msgbody">

                                        <input type="hidden" name="contents" value="<%= msgbody %>"">

                                        </TD>

                                </TR>

                        </table>

                        <A href="javascript:Save()">Save Article</A> <A href="javascript:List()">List

                                Article</A> <A href="javascript:Cancel()">Cancel</A>

                </form>

        </body>

</HTML> 

°Ô½Ã¹° Áö¿ì±â

°Ô½Ã¹°À» Áö¿ì´Â °úÁ¤Àº °£´ÜÇÏ´Ù. ¿ì¼± "del"À̶ó´Â À̸§À» °¡Áø À¥ Æû Çϳª¸¦ ¼Ö·ç¼Ç¿¡ Ãß°¡ÇÑ´Ù. ÀÌ À¥ Æû¿¡ °£´ÜÇÏ°Ô Panel, Input Text, ButtonÀ» Ãß°¡ÇÑ´Ù. °¢ ÄÁÆ®·Ñ¿¡ ´ëÇÑ ¼Ó¼ºÀº ´ÙÀ½°ú °°ÀÌ ÁöÁ¤Çϵµ·Ï ÇÑ´Ù.

TextBox

Id

txtPass

 

TextMode

Password

Button

Id

delBtn

 

Text

Delete

ÆíÁýÀÌ ³¡³µÀ¸¸é Delete ¹öưÀ» ´õºí Ŭ¸¯ÇÏ¿© À̺¥Æ®¸¦ Ãß°¡Çϵµ·Ï ÇÑ´Ù. ¾Æ·¡´Â delBtn¿¡ À̺¥Æ®¸¦ ±¸ÇöÇÑ ¼Ò½ºÀÌ´Ù.

<del.aspx.csÀÇ delBtn_Click À̺¥Æ® ó¸®>

private void delBtn_Click(object sender, System.EventArgs e)

{

        string password = txtPass.Text;

        string msgno = Request.QueryString.Get("msgno");

        if(msgno == null)

                Response.Redirect("list.aspx");

        as2Board board = new as2Board();

        if(board.DeleteBoard(System.Int32.Parse(msgno), password))

                Response.Redirect("list.aspx");

}

¿ì¼±, TextBoxÀÎ txtPassÀÇ °ªÀ» °¡Á®¿Í¼­ ÇØ´ç °Ô½Ã¹° - °Ô½Ã¹° ¹øÈ£ÀÎ msgno´Â ÆûÀÇ QueryStringÀ¸·Î Àü´ÞÇÑ´Ù - as2Board Ŭ·¡½ºÀÇ DeleteBoard()¿¡ Àü´ÞÇÏ´Â ³»¿ëÀÌ´Ù. ½ÇÇà ÈÄ¿¡´Â °Ô½Ã¹°ÀÌ Áö¹Ç·Î ¸®½ºÆ®¸¦ Ç¥½ÃÇϱâ À§±â À§ÇØ list.aspx·Î À̵¿ÇÑ´Ù.

as2Board Ŭ·¡½º¿¡ ÀÖ´Â DeleteBoard()´Â MS-SQL Server¿¡ Á¢¼ÓÇÏ¿© ÇØ´ç °Ô½Ã¹° ¹øÈ£ÀÇ ¾ÏÈ£¿Í ÀÔ·ÂµÈ ¾ÏÈ£°¡ °°ÀºÁö ºñ±³ÇÑ ÈÄ °°´Ù¸é ÇØ´ç ·¹Äڵ带 »èÁ¦Çϰí true¸¦ ¸®ÅÏÇϰí, ´Ù¸£´Ù¸é false¸¦ ¸®ÅÏÇÑ´Ù. ´ÙÀ½Àº DeleteBoard()ÀÇ ³»¿ëÀÌ´Ù.

<AS2Board.csÀÇ DeleteBoardÇÔ¼ö>

public bool DeleteBoard(int msgno, string password)

{

        SqlCommand cmd;

        SqlDataReader reader;

        string cmdText;

        string orgPass;

 

        cmdText = "select password from board where msgno = " + msgno.ToString();

        OpenDataBase();

        cmd = new SqlCommand(cmdText, con);

        reader = cmd.ExecuteReader();

 

        if(!reader.Read())

                return false;

        orgPass = reader.GetString(0);

        if(!orgPass.Equals(password))

                return false;

 

        reader.Close();

 

        cmdText = "delete from board where msgno = " + msgno.ToString();

        cmd.CommandText = cmdText;

        cmd.ExecuteNonQuery();

        DeleteFilePath(msgno);

 

        con.Close();

        return true;

}