http://classiclove.net/mmoo/memo.cgi (MEMO.CGI ¼Ò½º)
#!/usr/bin/perl
###########################[ ¼öÁ¤ÇØ¾ß ÇÒ ºÎºÐ ]################################ $main_dir = "."; #¸Þ¸ðÀå µð·ºÅ丮ÀÇ Àý´ë °æ·Î $cgi_url = "./memo.cgi"; #cgiÆÄÀÏÀÌ µé¾îÀÖ´Â URL $html_ok = "1"; #html Å×±× Àû¿ë°¡´É (Àû¿ëÇÏÁö ¾ÊÀ»¶§´Â "0") $per_page = "20"; #¸Þ¸ðÀå ÇÑÆäÀÌÁö´ç ³ªÅ¸³¯ ¸Þ¸ð °¹¼ö $list_num = "10"; #¸®½ºÆ® ÆäÀÌÁö¼ö([PREV].....[1][2][3][4][5].....[NEXT]) $table_width = "650"; #¸Þ¸ðÀå Å×À̺íÀÇ ³ÐÀÌ ################################################################################
##############################[ ±ÛÀÚ»ö ÁöÁ¤ ]################################### @text_color = ( #$per_page ¼ö¸¸Å ±ÛÀÚ»ö ¹è¿À» Ãß°¡½ÃÅ°½Ã¸é µË´Ï´Ù... ^.^ "red", "#FF6600", "#FF9900", "#00D300", "#009900", "#0000FF", "#0000AC", "#CC00CC", "#830083", "#999999", "pink", "gold", "black", "black", "black", "black", "black", "black", "black", "black"); ################################################################################
@pairs = split(/&/, $ENV{'QUERY_STRING'});
foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<!--(.|\n)*-->//g; $FORM{$name} = $value; } &getNumber;
unless($FORM{'action'}) { $FORM{'action'} = "r"; }
if($FORM{'action'} eq "r") { &readData; } elsif($FORM{'action'} eq "write") { &writeData; } else { exit; }
sub getNumber { open(HANDLE,"<$main_dir/num.txt"); $no_of_data = <HANDLE>; close(HANDLE); chop($no_of_data); }
sub readData { if($FORM{'p'}) { $cur_page = $FORM{'p'}; } else { $cur_page = "1"; }
$tot_page = int(($no_of_data-1)/$per_page)+1;
&htmlHead; &formMemo; &readMemo; &htmlFoot; }
sub htmlHead {
print "Content-type: text/html\n\n";
print <<UPMEMO; <html> <head> <title>ss</title> <style type='text/css'> <!-- A:link {color:blue;text-decoration:none;} A:visited {color:blue;text-decoration:none;} A:active {color:red;text-decoration:underline;} A:hover {text-decoration:underline;} .t {line-height:1.4} BODY,TD,SELECT,input,DIV,form,TEXTAREA {font-size:10pt;} P,blockquote,td,br {font-size:10pt} --> </style> </head> <body> <center>
<!--ÀÌ°÷¿¡´Â ¸Þ¸ðÀå À§¿¡ µé¾î°¥ html Äڵ带 ³Ö¾îÁÖ¼¼¿ä... ^.^-->
UPMEMO
}
sub htmlFoot {
print <<DOWNMEMO;
<!--ÀÌ°÷¿¡´Â ¸Þ¸ðÀå ¾Æ·¡ µé¾î°¥ htmlÄڵ带 ³Ö¾î ÁÖ¼¼¿ä... ^.^-->
</center> </body> </html> DOWNMEMO
exit; }
sub formMemo { local($data,$comment,$name,$value); local(@value,@cookies); if($ENV{'HTTP_COOKIE'}) { @cookies = split(/; /,$ENV{'HTTP_COOKIE'}); foreach(@cookies) { ($name,$value) = split(/=/,$_); $COOKIE{$name} = $value; } } print "<form method=get action=$cgi_url>\n"; print "<center><b><font color=pink>¡² ¿ä¸Þ¸ðÀå »çÁø¿Ã·¹µµ µÈ´Ù. (html) ¡³</font></b></center>\n"; print "<div align=center><table border=0 cellspacing=0 cellpadding=3 width=$table_width bgcolor=black><tr><td>\n"; print "<input type=hidden name=action value=write>\n"; print "<input type=hidden name=p value=1>\n"; print "<font color=white>NAME</font> <input name=name value=\"$COOKIE{'WHO'}\" type=text size=10 maxlength=30 style=\"background-color:white;border:1 solid black\">\n"; print "<font color=white> MEMO</font> <input name=comment type=text size=40 maxlength=120 style=\"background-color:white;border:1 solid black\">\n"; print "<input type=submit value=´·¯¶ó style=\"height:20px;background-color:#e3e3e3;border:1 solid black\"> <a href=$cgi_url><font color=white>¢ÂABCDEF¢Â</font></a>\n"; print "</td></tr><tr><td><table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor=white>\n"; }
sub readMemo { open(HANDLE,"$main_dir/memo.txt"); @datum = <HANDLE>; close(HANDLE); $k=0; for($i=($cur_page-1)*$per_page+1;$i<=($cur_page-1)*$per_page+$per_page;$i++) { @value = split(/\|/,$datum[$i]); $actual_number = ($no_of_data+1)-$i; if($actual_number > 0) { $short_date=substr($value[2],0,24); print "<tr><td><table border=0 cellspacing=2 cellpadding=0 width=100%><tr><td algin=left><font color=green>$short_date</font> <font color=red>¢¾</font><font color=blue>[$value[1]]</font><font color=$text_color[$k]>...$value[3]</font></td></tr></table></td></tr>\n"; $k++; } } print "</table></td></tr></table></div>";
###################################[ quick number start ]##################################### print "<div align=center><table border=0 cellpadding=3 cellspacing=0><tr><td align=center>\n"; $term = $list_num;$f = 1;$l = $term;while ($f <= $tot_page) { if (($f <= $cur_page) && ($cur_page <= $l)) {$prevp = $f - 1;
if ($prevp > 0) { print "[<a href=$cgi_url?action=r&p=$prevp><font color=blue>PREV</font></a>]....."; } else { print "[PREV]....."; } if ($l <= $tot_page) { for ($page = $f; $page <= $l; $page++) { if ($page == $cur_page) { print "[<font color=red><b>$page</b></font>]"; } else { print "<a href=$cgi_url?action=r&p=$page>[$page]</a>"; }}} else { for ($page = $f; $page <= $tot_page; $page++) { if ($page == $cur_page) { print "[<font color=red><b>$page</b></font>]"; } else { print "<a href=$cgi_url?action=r&p=$page>[$page]</a>"; }}} $nextp = $l + 1; if ($nextp <= $tot_page) { print ".....[<a href=$cgi_url?action=r&p=$nextp><font color=blue>NEXT</font></a>]"; } else {print ".....[NEXT]"; } }$f = $f + $term; $l = $l + $term;} print "</td></tr></table></div></form>\n"; ###################################[ quick number end ]################################### }
sub putNumber { open(HANDLE,">$main_dir/num.txt"); print HANDLE "$no_of_data\n"; close(HANDLE); }
sub writeData { &getNumber; &getVariable; &writeMemofile; $no_of_data++; &putNumber; &readData }
sub getVariable { unless($FORM{'name'} =~ /^\s*$/) { $name = "$FORM{'name'}"; $name =~ s/\|/|/g; } else { &error(no_name); } print "Set-Cookie: WHO=$name; expires=Sunday, 12-Dec-2007 12:12:12 GMT;\r\n"; if($FORM{'comment'}) { $comment = "$FORM{'comment'}"; if($html_ok ne "1") { $comment =~ s/</</g; $comment =~ s/>/>/g; $comment =~ s/"/"/g; $comment =~ s/\|/|/g; } $comment =~ s/\r\n\r\n/<p>/g; $comment =~ s/\r\n/<br>/g; } else { &error(no_comment); } &getDate; }
sub error { local($error) = $_[0]; &htmlHead; print "<p> <p> <p> \n"; if($error eq "no_name") { print "<hr noshade width=250>\n"; print "À̸¥ Àû¾î¾ß µÊ<br>\n"; print "<hr noshade width=250><p>\n"; } if($error eq "no_comment") { print "<hr noshade width=250>\n"; print "MEMO ¾ÈÀû¾ú±º...<br>±ÛÀ» Àú°ÅÁà¾ßµÊ ¤±-¤±;;<br>\n"; print "<hr noshade width=250><p>\n"; } print "´Ù½Ã °¡¼ Àû¾î¾ß µÊ<br><br>\n"; print "<a href=\"javascript:history.go(-1)\">¢¸Ã¹ ȸéÀ¸·Î °¡¼(BACK)</a><p> \n"; &htmlFoot; }
sub getDate { @week = ("ìí", "êÅ", "ûý", "â©", "ÙÊ", "ÐÝ", "÷Ï"); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
if($min < 10) { $min = "0$min"; } if($hour < 10) { $hour = "0$hour"; } $mon++; if($mon < 10) { $mon = "0$mon"; } if($mday < 10) { $mday = "0$mday"; }
$write_date = "$mon/$mday($week[$wday]) $hour:$min"; }
sub writeMemofile { local($data); local(@datum);
open(HANDLE,"$main_dir/memo.txt"); @datum = <HANDLE>; close(HANDLE);
open(HANDLE,">$main_dir/memo.txt"); foreach $data (@datum) { if($data =~ /<!--EOF-->/) { print HANDLE "<!--EOF-->\n"; print HANDLE "|$name|$write_date|$comment|\n"; } else { print HANDLE "$data"; } } close(HANDLE); }
|