#!/usr/bin/perl # # ¡ôÃö©ó³o¤@¦æ±Ô­z¡A½Ð¸ß°Ý³]¸m¦øªA¾¹ªººÞ²zªÌ¡C # ############################################################################### # # MiniBBS Excellent Version 1.19 # ²©öBBSǤǫǷÇèÇïÇÄ MiniBBS-EX- # # (c)2000 rescue.ne.jp This is FreeSoft. # ;$vers = "1.19"; ############################################################################### # # [History] # 2000/MAR/17 v1.00 ¤½¶}¶}©l # 2000/MAR/18 v1.01 ­×¥¿ªþ±aµe¹³ªº°O¨Æ¦b½s¶°®É¡Aµe¹³·|®ø¥¢ªº°ÝÃD # 2000/MAR/20 v1.10 ¤ä´©MD5 # 2000/MAR/31 v1.11 ÀÉÀY¤º®É¨èªº¤å¦rÂà´«­×¥¿ # 2000/APR/16 v1.12 ªð«H¼ÆÆò9¥óÇy¶WÆîÇFÇOÆóÇR¶¶µfÆòÃã®Ñ¶¶ÇRÇQÇJÇMÆêÇFÇiÇUÇy­×¥¿ # 2000/APR/19 v1.13 ³]©w«O¦sÆýÇQÆê³õ¦XÇRª½«áÇUÇÑÇ¥ÆãÇÜÇRÇÃÆãÇ»Æò´ÝÇJÇMÆýÇeÆì­×¥¿ # 2000/JUN/28 v1.14 ¶l¥ó°e¥ó®Éªº¤å¦rÂà´«½Õ¾ã # 2000/JUL/26 v1.15 ¶l¥óÀÉÀY­×¥¿ # 2000/OCT/10 v1.16 ­¶­±³B²z¤Î§ë½Z³B²zªº­×¥¿ # 2001/JAN/10 v1.17 µe¹³ÀɦWªº¦Ã¬VÀˬd # 2001/JUN/07 v1.18 Ç|ǫǷǵ¨î­­¤UÇNÇâÆãDz¦WÆò°O¿ýÆûÇsÇQÆêÇÌǬÇU­×¥¿ # 2001/NOV/01 v1.19 ªº°ÝÃD­×¥¿ # ############################################################################### # # ¡°§Q¥Î³W©wÇU½d³ò¤ºÇNÆú§Q¥ÎÆêÇFÇGÆ÷ÇeÇ@¡C¸Ô²ÓÇRÇKÆêÇMÇV¡B # ¡@ÇÉÇ¿ÇÄDZÆãÇÑÇèǵǩÇáÆã[¢å¢í¢êùاÞ] http://www.rescue.ne.jp/ ÇyÆú°Ñ·ÓÆõÇGÆûÆê¡C # # ¡°¦PdzǵÇÂÇܤ@¦¡ÇR§tÇeÇsÇrµe¹³ÇRÇKÆêÇMÇV¡B¤U°O®ÑÄyÇU§Q¥Î³W©wÇR±qÇJÇMÆõÇGÆûÆê¡C # ¡@(ÇFÇGÆý¡Bcopyright.gifÇy°£Æõ) # # ¡@¡EÇׯãÇÜÇÖÆãÇ´¯À§÷¶°¡uCOOL¡®ÇÏÇ´ÇÉǵ¡vISBN4-8443-1253-7 # ¡@¡@°ÝÆê¦XÇvÇB¥ý¡G(®è)Ç~ÇïÇÓÇèǵ³c´ßÇÃÇ´Ç»ÇçÀç·~±À¶i³¡ # ¡@¡E°ò¥»ªºÇR¡BÆú¦Û¨­ÇUÇׯãÇÜÇÖÆãÇ´(°Ó¥Î,«D°Ó¥ÎÇy°ÝÇvÇA)ÇRÆú¦Û¨­(ÇeÇFÇV¤Í¤Hª¾¤H # ¡@¡@µ¥Æò³]¸mÇy¤â§UÆ÷Ç@Çrµ{«×½d³òÇy§tÇg)Æò³]¸mÆýÇM§Q¥ÎÇ@Çr³õ¦XÇR¡B¯SÇR°ÝÃDÇVÆè # ¡@¡@ÇqÇeÇBÇz¡CÇbÇOÇzÇPÇU³õ¦XÇVÆùÇsÇR¬Û·íÇ@ÇrÇO«äÇvÇsÇeÇ@¡C # ¡@¡E·ídzǵÇÂÇÜÇUÀç·~ªº³]¸mÇkÇèÇïÇ»ÇçÇQÇP¡BÇÓÇéǬÇåÇÜÇDÇUÇiÇUÇyÀç§Q¥ØªºÇUÇFÇhÇR # ¡@¡@§Q¥ÎÇ@Çr³õ¦XÇRÇV¡B·íDZÇ~ÇÄÇU§Q¥Î³W©wÇRÇoÇr¨Æ·~ªÌµn¿ýÇRÇKÆêÇMÆú½T»{ÆõÇGÆûÆê¡C # ¡@¡@ÆùÇU³õ¦X¡B¤@¦¡ÇR§tÇeÇsÇMÆêÇrµe¹³ÇU¨úÊíÇRÇKÆêÇMÇV¡B·íDZÇ~ÇÄÇNÇVÃöÉOÆýÇeÇBÇz # ¡@¡@ÇUÇN¡BÇׯãÇÜÇÖÆãÇ´¯À§÷¶°ÇU°ÝÆê¦XÇvÇB¥ýÇRª½±µ¤å®ÑÇNÆð°ÝÆê¦XÇvÇBÆõÇGÆûÆê¡C # ¡@¡EÇQÆð¡BÆú¦Û¨­ÇN¥Î·NÆûÇsÇFµe¹³Çy§Q¥ÎÇ@Çr³õ¦XÇV¡BÆùÇU­­ÇqÇNÇVÆèÇqÇeÇBÇz¡C # ############################################################################### # # ¡°¬I¤u¥i¯à½d³ò # # ¡EUNIX¤WÇRÆðÆêÇM¡BPerl5Æò§Q¥ÎÇNÆó¡Bsendmail(ÇeÇFÇVÇDÇsÇR·Ç¾ÚÇ@ÇrÇiÇU)ÇOuuencode # ¡@(Unix-To-UnixÇÀÆãÇç)ÆòCGIÇÓÇéǬÇåÇܤWÆñÇp§Q¥ÎÇNÆóÇrÀô¹ÒÇNÆèÇrÆùÇO¡CÆùÇs¥H¥~ÇU # ¡@Àô¹ÒÇRÇKÆêÇMÇV°Ê§@½T»{ÇyÆýÇMÆðÇqÇeÇBÇz¡CÇeÇF¡B³]¸mÀ˰QÇV³]¸mªÌÆò½Õ¬dÇyÆýÇMÆõÇGÆûÆê¡C # # ¡°³]¸mºc¦¨(°Ñ¦Ò¨Ò) < >¤ºÇVÇÍÆãÇÛǿdzÇãÇï³]©w­È(ÆèÆõÇeÇNÇi¤@¯ë¨Ò) # ¡@³Ì¾AÇQºc¦¨Çk³]©w­ÈÇV³]¸mÇ@ÇrDZÆãÇÌÀô¹ÒÇRÇoÇJÇM²§ÇQÇqÇeÇ@¡CDZÆãÇ̺޲zªÌÇU«ü¥ÜÇR # ¡@±qÇJÇMÆõÇGÆûÆê¡C/ / ÇVÇÃÇ}ÇèÇ«ÇÄÇæÇy·N¨ýÆýÇeÇ@¡C # # ¡´¢Ï.¢Ö¢â¢Û¢Ú(µe¹³Çy§tÇg)ÇO¢Ñ¢Õ¢×ÇÓÇéǬÇåÇÜÆò¦PÆþ³õ©ÒÇR³]¸mÇNÆóÇr³õ¦X(±À¼ú) # # /Web¤WÆñÇpÇV¨£ÆîÇQÆê¦ì¸mÇU¥ô·NÇUÇÃÇ}ÇèÇ«ÇÄÇæ/ # | # |-- /data/ <777> # |-- /tmp/ <777> # # /¥ô·NÇUÇÃÇ}ÇèÇ«ÇÄÇæ/ # | # |-- /htdocs/ <755> # | | # | |-- copyright.gif <644> ... Çéǰ¥Îµe¹³(³]¸mÆýÇQÆ÷ÇsÇWCGI¥X¤OÆûÇsÇr) # | |-- pin.gif <644> ... ªð«H°O¨ÆÇÚÆãÇ«¥Îµe¹³ # | |-- help.html <644> ... ¨ÏÆê¤èHTML # | # |-- bbs.cgi <755> ... ÆùÇUÇÓÇéǬÇåÇÜ(ÇÑÇ{Ç~Çç¦WÇV¥ô·N) # |-- cgi-lib217.pl <644> ... v2.17¥H­°(¡°2) # |-- crypt.cgi <755> ... bbs.cgiÇUªì´Á³]©w(ºÞ²zªÌ¥Î·tµýµf¸¹ÇU·t¸¹¤Æ)ÇR¨ÏÆì # |-- jcode.pl <644> ... v2.0¥H­°(¡°2) # # ¡m³]©wÇÝÇÞ¡n¡u¬Û¹ï³]©wÇJÇM¡H¡v # # |-- /bbs_data/ (ÆùÆùÇV¢å¢í¢ê¤WÆñÇpÇVµ´¹ïÇRÇ|ǫǷǵÇNÆóÇQÆê) # | | # | |-- /data/ # | |-- /tmp/ # | # |-- /public_html/ (ÆùÇs¥H¤UÆò¢å¢í¢ê¤WÇN¨£ÆîÇr) # | # |-- /bbs/ # | # |-- bbs.cgi # # ÇFÇOÆîÇW¡BÆùÇUÇoÆìÇQ¦ì¸mÃö«YÇU³õ¦X¡Bbbs.cgiÆñÇp¨£ÇF/data/ÇU¦ì¸mÇy¬Û¹ïªºÇR³]©wÇ@ÇrÇO¡B # $base_path = "../../bbs_data/data/"; ÇRÇQÇqÇeÇ@¡Cµ´¹ï¦ì¸mÇy³]©wÇ@Çr³õ¦XÇV¡B¢Ô¢â¢ÞǹÇÑÇÄ # µ¥ÇN¨£ÆîÇMÆêÇrÇÍǵ¦WÇO¹ê»ÚÇUÇÍǵ¦WÆò²§ÇQÇr³õ¦XÇiÆèÇqÇeÇ@ÇUÇN¡BDZÆãÇ̺޲zªÌÇR½T»{ÆýÇMÆõÇGÆûÆê¡C # ¸ÔÆýÆêÆùÇOÇV¡B°Ñ¦Ò®ÑÇQÇPÇN«j±jÆýÇMÆõÇGÆûÆê¡C # # ¡´¢Ð.¢Ñ¢Õ¢×ÇÓÇéǬÇåÇÜÇU³õ©ÒÆò«ü©wÆûÇsÇMÆêÇr³õ¦X # # /CGIÇÓÇéǬÇåÇÜÇy³]¸mÇ@ÇrÇÃÇ}ÇèÇ«ÇÄÇæ/ # | # |-- /data/ <777> # |-- /tmp/ <777> # | # |-- bbs.cgi <755> ... ÆùÇUÇÓÇéǬÇåÇÜ(ÇÑÇ{Ç~Çç¦WÇV¥ô·N) # |-- cgi-lib217.pl <644> ... v2.17¥H­°(¡°2) # |-- crypt.cgi <755> ... bbs.cgiÇUªì´Á³]©w(ºÞ²zªÌ¥Î·tµýµf¸¹ÇU·t¸¹¤Æ)ÇR¨ÏÆì # |-- jcode.pl <644> ... v2.0¥H­°(¡°2) # # /¥ô·NÇUÇÃÇ}ÇèÇ«ÇÄÇæ/ # | # |-- /htdocs/ <755> # | | # | |-- copyright.gif <644> ... Çéǰ¥Îµe¹³(³]¸mÆýÇQÆ÷ÇsÇWCGI¥X¤OÆûÇsÇr) # | |-- pin.gif <644> ... ªð«H°O¨ÆÇÚÆãÇ«¥Îµe¹³ # | |-- help.html <644> ... ¨ÏÆê¤èHTML # # ¡´¢Ñ.¢Ö¢â¢Û¢Ú(µe¹³Çy§tÇg)ÇO¢Ñ¢Õ¢×ÇÓÇéǬÇåÇÜÆò¦PÆþ³õ©ÒÇR³]¸mÇNÆóÇr³õ¦X # ¡@ (¢å¢í¢ê¤WÆñÇp¨£ÆîÇQÆê³õ©ÒÆò½T«OÇNÆóÇQÆê³õ¦X) # # /¥ô·NÇUÇÃÇ}ÇèÇ«ÇÄÇæ/ # | # |-- /data/ <777> # | | # | |-- .htaccess <644> ... (¡°1) # | # |-- /htdocs/ <755> # | | # | |-- copyright.gif <644> ... Çéǰ¥Îµe¹³(³]¸mÆýÇQÆ÷ÇsÇWCGI¥X¤OÆûÇsÇr) # | |-- pin.gif <644> ... ªð«H°O¨ÆÇÚÆãÇ«¥Îµe¹³ # | |-- help.html <644> ... ¨ÏÆê¤èHTML # | # |-- /tmp/ <777> # | | # | |-- .htaccess <644> ... (¡°1) # | # |-- bbs.cgi <755> ... ÆùÇUÇÓÇéǬÇåÇÜ(ÇÑÇ{Ç~Çç¦WÇV¥ô·N) # |-- cgi-lib217.pl <644> ... v2.17¥H­°(¡°2) # |-- crypt.cgi <755> ... bbs.cgiÇUªì´Á³]©w(ºÞ²zªÌ¥Î·tµýµf¸¹ÇU·t¸¹¤Æ)ÇR¨ÏÆì # |-- jcode.pl <644> ... v2.0¥H­°(¡°2) # # (¡°1) ÆùÇUÇÃÇ}ÇèÇ«ÇÄÇæÇy°Ñ·ÓÇNÆóÇQÆêÇoÆìÇRÇ@Çr³]©wÇÑÇ{Ç~Çç # ¡@ ³]©wÆò§Q¥ÎÇNÆóÇrÆñÇPÆìÆñÇVDZÆãÇÌÇUºØÃþÇkDZÆãÇ̺޲zªÌÇU³]©wÇR¦]ÇqÇeÇ@ÇUÇN¡B # ¡@ ·í¸ÓÇÃÇ}ÇèÇ«ÇÄÇæ¤ºÇR¾A·íÇQÇÑÇ{Ç~ÇçÇy¸mÆó¡BÇ|ǫǷǵ(ªí¥Ü)ÇNÆóÇQÆêÆùÇOÇy½T»{Ç@ÇrÆùÇO¡C # # (¡°2) ¦UÇåÇ~ÇÒÇåÇæÇyÆùÇUÇÓÇéǬÇåÇÜÇy¦PÆþ³õ©ÒÇR¸mÆõ³õ¦XÇV¡B¦¸ÇUÇoÆìÇR³]©wÆýÇeÇ@¡C # # require "./jcode.pl"; # require "./cgi-lib217.pl"; # # ¡@ DZÆãÇ̰¼ÇN¥Î·NÆûÇsÇMÆêÇr³õ¦X(§Q¥ÎÇNÆóÇrÇÌÆãÇ´ÇãÇï¥H¤WÇUÇiÇUÆò¥Î·NÆûÇsÇMÆêÇr³õ¦X)ÇV¡B # ¡@ ¦¸ÇUÇoÆìÇRÇ@ÇsÇW¡BÆùÇsÇpÇUÇÑÇ{Ç~ÇçÇy³]¸mÆýÇQÆõÇMÇiÀÙÇfÇeÇ@¡C@INCÇR§tÇeÇsÇrPATHÇUÇPÆùÆñÇR¡B # ¡@ ÆùÇsÇpÆò³]¸mÆûÇsÇMÆêÇr³õ¦XÇR¡B¦Û°ÊªºÇR±´ÆýÇMŪÇfÆùÇzÇNÆõÇsÇr¡C # # require "jcode.pl"; # require "cgi-lib217.pl"; # ############################################################################### # ªì´Á³]©w ############################################################################### # ¡õ³]©w¦U¶µ¨ç¦¡®w require "./jcode.pl"; require "./cgi-lib217.pl"; # ¡õ³]©w/data/¥Ø¿ýªº¦ì¸m(Server Path) $base_path = "../../../bbs_data/data/"; # ¡õ³]©w/tmp/¥Ø¿ýªº¦ì¸m(Server Path) $tmp_dir = "../../../bbs_data/tmp/"; # ¡õºÞ²z¥Î·tµýµf¸¹ÇU³]©wÇy # ²K¥IÇUcrypt.cgiÇy³]¸mÆýÇM¹ê¦æÆý¡B³]©wÇ@Çr·tµýµf¸¹Çy¤J¤OÆýÇM·t¸¹Çy§@¦¨ÆýÇeÇ@¡C # ÇDÇsÇyÇDÇUÇeÇe¤U°OÇRǯÇÐÆãÆýÇMÆõÇGÆûÆê¡C $admin_passwd = '$1$Is$MIWCZBYlaikVQmhI7XYEp0'; # ¡¿ ³]¸mÇR¤£¦w¡BÇeÇFÇV¥¢±ÑÆýÇF³õ¦XÇRÇV¡BÇeÇA¤W°OÇU³]©wÇUÇfÇy¦æÆê¡BÆùÇsÇoÇq¥ýÇU³]©wÇy¤@¤ÁÆêÆþÇpÇAÇR¡B # µe­±Æò¥XÇrÆñÇPÆìÆñÇU½T»{ÇyÆýÇMÆõÇGÆûÆê¡C¥¿ÆýÆõ³]©wÆûÇsÇMÆêÇsÇW¡B²Ä¤@¨BÇV¦¨¥\ÇO¨¥ÆîÇeÇ@¡C # ¡õÆùÇUÇÓÇéǬÇåÇÜÇy³]¸mÇ@Çr³õ©ÒÇyURLÇN³]©w $reload = "bbs.cgi"; # ¡õµe­±ªº°ò¥»ª¬ºA³]©w¡Aªº¤º®e $SETUP{'body'} = ''; # ¡õ³]©wµe­±¬O§_¸m¤¤ (1:¸m¤¤ 0:¾a¥ª) $SETUP{'centering'} = 1; # ¡õ³]©wÂsÄý¾¹¼ÐÃDÅã¥Üªº¤å¦r $SETUP{'title'} = "Hello, closer!! - ¯d¨¥ªO"; # ¡õ´¦¥ÜªOÆñÇp©ÞÆ÷ÇrÇFÇhÇUÇæÇïÇ«¥ýÇOÇæÇïÇ«¦WÇU³]©w $SETUP{'bye'} = "../../index.php"; $SETUP{'bye_name'} = '¦^¨ì closer ªº­º­¶'; # ¡õ­¶­±¤W³¡Åã¥Üªº°T®§(HTML®æ¦¡) # <<"EOF";ÇU¦¸¦æÆñÇpEOFÇUª½«eÇeÇNÇR°O­zÇ@Çr¡C $SETUP{'head_message'} = <<"EOF";

µ¹ closer ªº¯d¨¥ªO

³o¬O¤@­Ó«Ü¶§¬Kªº¯d¨¥ªO¡C
¤£¹LÁٽЦh¦h§Q¥Î¡I \\^o^/¡C
PS: ¥i¥H©ñ¹Ï¤ù­ò¡I EOF # ¡õ³]©w¯d¨¥¬O§_¥i¥Hªþ¥[¹ÏÀÉ (1:¥i¥H 0:¤£¥i¥H) $use_image = 1; # ¡õ§ë½Z®ÉÇR°Ñ·ÓÆûÇsÇrÇ|ǫǷǵ¤¸¢ã¢à¢ÚÆò$reloadÇy§tÇeÇQÆê³õ¦XÇRǤÇåÆãÇOÇ@ÇrÆñÇPÆìÆñÇU³]©w (1:Ç@Çr 0:ÆýÇQÆê) # ª¾ÇpÇQÆê³õ©ÒÆñÇpÇU´cÀ¸§ë½Z¨¾¤îÇUÇFÇhÇNÇ@Æò¡B¥¿±`ÇQ§ë½ZÇNÆèÇJÇMÇiǤÇåÆãÇyÀË¥XÇ@ÇrÆùÇOÇiÆèÇqÇeÇ@¡C $ref_check = 0; # ¡õ´¦¸üÆûÇsÇFµe¹³Æòª¾ÇpÇQÆê³õ©ÒÆñÇpÇ|ǫǷǵÆûÇsÇMªí¥ÜÆûÇsÇrÆùÇOÇy³\Ç@ÆñÇPÆìÆñÇU³]©w (1:³\ÆûÇQÆê 0:³\Ç@) # ª¾ÇpÇQÆê³õ©ÒÆñÇpÇU°Ñ·Ó¨¾¤îÇUÇFÇhÇNÇ@Æò¡B´¦¥ÜªOÆñÇpÇUÇ|ǫǷǵÇNÆèÇJÇMÇiǤÇåÆãÇyÀË¥XÇ@ÇrÆùÇOÇiÆèÇqÇeÇ@¡C $img_ref_check = 0; # ¡õ¦pªG¦³¥ô¦óªº¯d¨¥¡E½s¿è¡E¦^À³ªº¸Ü¡A·|±H¤@«Ê¦ì¨ì³]©wªº adress¡]³]©w¦b $bbs_masterªº¦a§}¡^ªº¯d¨¥³qª¾¥\¯à (1:¦³®Ä 0:µL®Ä) $report = 0; # ¡õ¦pªG¦³¤H¦^À³ªº¸Ü¡A¨t²Î·|±H¤@«Ê«Hµ¹¸Ó¯d¨¥¦ê²Ä¤@½gªº¯d¨¥ªÌªº¥\¯à¡C¡]¦^À³³q³ø¥\¯à¡^ ¡]1:¨Ï¥Î 0:¤£¨Ï¥Î¡^ # ÆùÇU¾÷¯àÇyONÇRÆýÇM§ë½ZÆýÇMÇi¡B«áÆñÇpÆùÇU³]©wÇyµL®ÄÇRÇ@ÇsÇW¾÷¯àÆýÇQÆõÇQÇqÇeÇ@¡C $resmail = 0; # ¡õºÞ²zªÌªº email address (¨Ï¥ÎªÌ·|¥i¥H§â·N¨£©Î°ÝÃD°e¨ì³o­Ó«H½c) $bbs_master = 'closer@edirect168.com'; # ¡õ§ë½ZÇèÇÙÆãÇľ÷¯àÇkªð«HǯÆãÇç¾÷¯àÇU°e«H¤¸ÇRÇ@ÇrÇ|ÇÅÇèǵ # °e«HªÌÇU¢ÓÇÝÆãÇçÆò°O¸üÆûÇsÇMÆêÇMÇi¡BÂà°eÆûÇsÇrÇÝÆãÇçÇUµo«H¤¸ÇVÆùÇUÇ|ÇÅÇèǵÇRÇQÇqÇeÇ@¡C # °O¤JÆûÇsÇFÇ|ÇÅÇèǵÆò¶¡¹HÇJÇMÆêÇr³õ¦XÇR¡BÇDÇUÇÝÆãÇçÆò¦æ¤è¤£©úÇRÇQÇJÇMÆýÇeÆìÆñÇpÇNÇ@¡C # ¢ÓÇÝÆãÇçÆò°O¤JÆûÇsÇMÆêÇsÇW¡BReply-To: (ªð«H¥ý«ü©w) Æò³]©wÆûÇsÇeÇ@¡C # # ÇÝÆãÇæÇïÇ¬ÇæÇµÇÄ(ML)ÇOÇæÇïÇ«ÆûÇBÇr³õ¦XÇV¡BÆùÇUÇ|ÇÅÇèǵÆòMLÇU§ë½Z¥ÎÇUÇ|ÇÅÇèǵÇRÇQÇqÇeÇ@¡C # §ë½ZÆûÇsÇF¤º®eÇVÆùÇUÇ|ÇÅÇèǵÇRÂà°eÆûÇsÇeÇ@ÇUÇN¡BMLÇRÇi¤º®eÆò¬yÇsÇrÆùÇOÇRÇQÇqÇeÇ@¡C # ÇQÆð¡Bµe¹³ÇiÇÝÆãÇçÇN²K¥IÆûÇsÇeÇ@ÇUÇN¡Bµe¹³ÇU¼ÆÇkDZÇ~ǶÇU½Õ¾ãÇyÀ˰QÆýÇMÆõÇGÆûÆê¡C $mailto = 'closer@edirect168.com'; # ¡õ§ë½ZÇèÇÙÆãÇľ÷¯àÇkªð«HǯÆãÇç¾÷¯à®ÉÇU Reply-To: (ªð«H¥ý«ü©w) Çy©T©wÆýÇFÆê³õ¦XÇUÇ|ÇÅÇèǵ # ³]©wÆýÇQÆ÷ÇsÇW¦Û°Ê§P§O(°O¤JÆòÆèÇsÇW°O¤JªÌÇ_¡BÇQÆ÷ÇsÇWªð«H¤¸Ç_) $reply_to = ''; # ¡õÇÝÆãÇç°e«HÇÓÇéǬÇåÇÜÇU³]©w $sendmail = '/usr/sbin/sendmail'; # ¡õ¢ã¢Ü¢×¢æÇNÇÌÇ~ÇÆÇæÇÑÇ{Ç~ÇçÇU°e¨ü«HÇy¦æÆì»ÚÇR¥DÇR§Q¥ÎÆûÇsÇrǤÇïǯÆãÇųB²zÇyÇ@ÇrÇÓÇéǬÇåÇÜ(uuencode)ÇU³]©w $UUENCODE = "/usr/bin/uuencode"; # ¡õ§ë½ZÇèÇÙÆãÇľ÷¯à®ÉÇRÇÝÆãÇçÇUÃD¦WÇR¥I¥[ÆûÇsÇr¤å¦r¦C $mail_subject = '¯d¨¥³qª¾'; # ¡õ§ë½ZÇèÇÙÆãÇľ÷¯àÇkªð«HǯÆãÇç¾÷¯àÇN°e«HÆûÇsÇrÇÝÆãÇçÇU³Ì«áÇR¤JÇrdzǬÇÉǽÇß $sign = <<'EOF'; -------------------------------- closer ªººô­¶ closer@edirect168.com EOF # ¡õ¤W°O³]¸mºc¦¨¨ÒÇVÆêÇAÇsÇi¢å¢í¢ê¤WÆñÇpÇV§ë½ZÇÃÆãÇ»ÇÑÇ{Ç~ÇçÇV¨£ÆîÇQÆêÆùÇOÆò«e´£ÇRÇQÇJÇMÆêÇeÇ@¡C # §ë½ZÇÃÆãÇ»ÇÑÇ{Ç~ÇçÇRÇV·t¸¹¤ÆÆûÇsÇMÆêÇrÇiÇUÇU¡BÇDÇU°O¨ÆÇy«d°£Ç@ÇrÇFÇhÇU·tµýµf¸¹ÇÃÆãÇ»Çi§tÇeÇsÇM # ÆêÇrÇFÇhÇR¡B¨£ÇpÇsÇMÆýÇeÆìÇO¸ÑŪÆûÇsÇMÆýÇeÆì¥i¯à©ÊÆò°ªÆõÇQÇqÇeÇ@¡CÇiÆýÇPÆìÆýÇMÇi¢å¢í¢ê¤WÆñÇp # ¨£ÆîÇQÆêÇoÆìÇQºc¦¨ÇN³]¸mÇNÆóÇQÆê³õ¦XÇV¡BÇÃÆãÇ»ÇÑÇ{Ç~ÇçÇUÂX±i¤lÇy .cgi (ÇeÇFÇVÇDÇUDZÆãÇÌÇNCGIÇOÆýÇM # »{ÃÑÆûÇsÇrÂX±i¤l)ÇRÆýÇMÆýÇeÆìÆùÇOÇN¡BCGIÇÓÇéǬÇåÇÜÇOÆýÇMµL²zÇkÇq»{ÃÑÆûÇsÇM¡B¨£ÇpÇsÇQÆêÇoÆìÇR # Ç@ÇrÆùÇOÇi¥i¯àÇNÇ@¡CÇDÇU³õ¦XÇV¡B¦¸ÇU³]©wÇy $ext = "cgi"; ÇRÆýÇMÆõÇGÆûÆê¡C¹B¥Î³~¤¤ÇUÅܧóÇVÇNÆóÇeÇBÇz¡C $ext = "txt"; # ¡õ/htdocs/ÇÃÇ}ÇèÇ«ÇÄÇæÇU³õ©ÒÇy³]©w(°²·QÇÍǵ¡B­nÇ@ÇrÇR¢ã¢à¢Ú) # ¤ÀÆñÇpÇQÆê³õ¦XÇV¡Bhttp://ÆñÇpÇDÇU³õ©ÒÇeÇNÇUÇÍǵÇy®ÑÆêÇMÆõÇGÆûÆê¡C $image_url = "./htdocs/"; # ¡õ/htdocs/ÇÃÇ}ÇèÇ«ÇÄÇæÇU³õ©ÒÇy³]©w(DZÆãÇÌÇÍǵ) ... ¢ã¢à¢ÚÇNÇVÇQÆõDZÆãÇ̤º³¡ÇUÇÍǵ $image_path = "./htdocs/"; # ¡õ´¦¥ÜªOµe­±ÇU¤ÞÆó½lÇh²v(ªí¥Üµe­±°ìÇU³Î¦X) ... 100%ÇN¥þµe­±ªí¥Ü $width = "80%"; # ¡õ¤À¹j½uªº«p«× $hr_size = 2; # ¡õÇ×ǵÇĦWÇyªí¥ÜÇ@ÇrÆñÇPÆìÆñ(ÇÝÆãÇçÂà°e®ÉÇy°£Æõ)ÇU³]©w (1:¤½¶} 0:«D¤½¶}) # «D¤½¶}ÇU³õ¦XÇVªí¥ÜÆýÇQÆêÇGÆ÷ÇNÆèÇJÇM¡BÇÃÆãÇ»ÇÑÇ{Ç~ÇçÇRÇV°O¿ýÆûÇsÇMÆêÇeÇ@¡C $view_host = 0; # ¡õ¦U³¡¤ÀÇU¤å¦r¦âÇk­I´º¦âÇU³]©w # ÇÃÇÑÇ¥ÇçÇÄÇUµe­±ÇN¦ì¸mÃö«YÇy½Õ¬dÇU¤W¡BÇYÇOÇKÇAÇK³]©wÇ@ÇrÇOÆêÆêÇNÆýÇnÆì¡C $SETUP{'color1'} = "#CCCCAA"; #¼ÐÃD°ÏªºÃC¦â $SETUP{'color2'} = "#FFFFFF"; #ªí¥Ü°ì ex.$background $SETUP{'color3'} = "#335555"; #Ç»Ç~ÇÄÇçkj¤º¤å¦r¦â $SETUP{'color4'} = "#DDDDAA"; #ÇÑÇ¥ÆãÇܶµ¥ØÄæÇU¤å¦r¦â $SETUP{'color5'} = "#000000"; #ÇÑÇ¥ÆãÇܶµ¥ØÄæÇUÇ·Çç¦â $SETUP{'color13'} = "#000000"; #ÇÑÇ¥ÆãÇܤº®eÄæÇU¤å¦r¦â $SETUP{'color6'} = "#CCCCAA"; #ÇÑÇ¥ÆãÇܤº®eÄæÇUÇ·Çç¦â $SETUP{'color7'} = "#555555"; #¨£¥XÆý¤å¦r¦â $SETUP{'color8'} = "#CCCCCC"; #Ç»Ç~ÇÄÇçkj¦â(ªð«H³¡¤À) $SETUP{'color9'} = "#550033"; #Ç»Ç~ÇÄÇçkj¤º(ªð«H³¡¤À)¤å¦r¦â $SETUP{'color10'} = "#000000"; #ªí¥Ü°ì¤º¤å¦r¦â $SETUP{'color11'} = "#330000"; #ªí¥Ü°ì¤º(ªð«H³¡¤À)¤å¦r¦â $SETUP{'color12'} = "#EEEEEE"; #ªí¥Ü°ì¤º(ªð«H³¡¤À)Ç·Çç¦â ex.$background2 # ¡õ´¦¸üµe­±(¿Ë°O¨ÆÇOªð«H°O¨ÆÇDÇsÇEÇs)ÇR­I´ºµe¹³Çy³]©wÇ@Çr³õ¦X # ÆùÇUµe¹³ÇÑÇ{Ç~ÇçÇV/htdocs/¤ºÇR³]¸mÆýÇMÆõÇGÆûÆê¡C # µe¹³ÇyŪÇfÆùÇeÇQÆê¤èÇUÇFÇhÇRÇi¡BÆùÇsÇy³]©wÆýÇMÇi¡BÇDÇU­I´º¦âÇRªñÆê¦â¦XÆêÇU­I´º¦âÇy¤W°OÇN³]©wÇ@ÇrÆùÇO¡C # ÇDÆìÆýÇQÆêÇO¡B³]©wÇRÇoÇJÇMÇV¤å¦r¦âÇO­I´º¦âÆò¦P¨t¦âÇRÇQÇJÇM¨£ÆîÇQÆõÇQÇr®£ÇsÆòÆèÇqÇeÇ@¡C # # ¨Ò $background = "view_back2.gif"; #¿Ë§ë½Z°ì­I´º # $background2 = "view_back.gif"; #¤l§ë½Z°ì(ªð«H³¡¤À)­I´º $background = ""; #¿Ë°O¨Æ­I´º $background2 = ""; #¤l°O¨Æ­I´º # ¡õ³Ì¤j«O¦s¥ó¼Æ(ÇFÇGÆý¿Ë°O¨ÆÇU«O¦³¼ÆÇNÆèÇJÇMªð«H°O¨ÆÇV§tÇeÇQÆêÇUÇN¡B®e¶qÀ˰QÇRÇVÇDÆöÇvÇQÆê) # ÆùÇsÇy¶WÆîÇrÇO¡B¥jÆê¿Ë°O¨ÆÇOÇDÇsÇRÃöÇvÇrªð«H°O¨ÆÇkµe¹³¤@¤ÁÆò«d°£ÆûÇsÇeÇ@¡C $SETUP{'max'} = 3000; # ¡õ¢°ÇÖÆãÇ´ÇRªí¥ÜÇ@Çr°O¨ÆÇU¼Æ(ÇFÇGÆýªð«H°O¨ÆÇV¼ÆÆîÇQÆê) # µe¹³ÇyÀWÁcÇRÊíÆì³õ¦XÇV¤ÖÇQÆê¤èÆò»´ÆõÇQÇJÇM¿Ë¤ÁÇNÇ@¡C³~¤¤ÅܧóÇiÇNÆóÇeÇ@ÇUÇN¡C $SETUP{'page'} = 10; # ¡õ¿Ë°O¨Æªí¥ÜkjÇU³Ì¥~kjÇUÇØÆãǼÆãDZÇ~Ƕ # 0ÇNkjÇyªí¥ÜÆýÇeÇBÇz¡CÃB½t­·ÇRÇ@Çr³õ¦XÇV¡B3¡ã5µ{«×ÇU­ÈÇy³]©wÇ@ÇrÇOÆêÆêÇNÆýÇnÆì¡C $border1 = 0; # ¡õ¢°¦^ÇU§ë½ZÇN³\¥iÇ@Çr¦X­pµe¹³²K¥IDZÇ~ǶÇU³Ì¤j­È(³æ¦ì¡GÇÌÇ~ÇÄ) $attc_image_max = 100000; # ¡õ¢°¦^ÇU§ë½ZÇN³\¥iÇ@Çr¦X­pµe¹³²K¥I¼ÆÇU³Ì¤j­È(³æ¦ì¡GªT) $attc_count_max = 3; # ¡õ§ë½Z«áÇR­×¥¿(½s¶°)Çy³\¥iÇ@Çr®É¶¡(³æ¦ì¡G¬í) # ÆùÇU®É¶¡Çy¶WÆîÇrÇO­×¥¿Æò®ÄÆñÇQÆõÇQÇqÇeÇ@¡CÆùÇsÇVºÞ²zªÌÇUÀ˾\Çy²×¤FÆýÇF°O¨ÆÆò¡B«áÆñÇpµL¨î­­ÇR­×¥¿ÆûÇsÇM # ÆýÇeÆìÇO¡BºÞ²z¤WÇU¤â¶¡ÆòÆñÆñÇrÆùÇOÆñÇp³]Æ÷ÇFÇiÇUÇN¡B30¤À(1800¬í)¥H¤º®Õ¥¿¥i¯àµ{«×ÇRÆýÇMÆðÆóÇeÆýÇnÆì¡C $edit_limit = 1800; # ¡õªð«H°O¨ÆÇNÆèÇrÆùÇOÇyµøÄ±ªºÇR©ú¥ÜÇ@ÇrÇFÇhÇUÇÚÆãÇ«µe¹³(ÇÐÇïµe¹³) # ÆùÇUµe¹³ÇÑÇ{Ç~ÇçÇV/htdocs/¤ºÇR³]¸mÆýÇMÆõÇGÆûÆê¡C $res_image = 'pin.gif'; ############################################################################### # ªì´Á³]©wÇV¥H¤W ############################################################################### ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); @wday_array = ('¤é','¤@','¤G','¤T','¥|','¤­','¤»'); $date_now = sprintf("%04d/%01d/%01d (%s) %02d:%02d:%02d",$year +1900,$mon +1,$mday,$wday_array[$wday],$hour,$min,$sec); if ($jcode'version < 2) { &error('jcode.pl',0,'½Ð¦w¸Ë Ver.2 ©Î§ó·sª©¥»ªº jcode.pl¡C'); } if ($cgi_lib'version < 2.17) { &error('jcode.pl',0,'½Ð¦w¸Ë Ver.2.17 ©Î§ó·sª©¥»ªº cgi-lib.pl¡C'); } unless (-e $base_path) { &error('³]¸m¿ù»~',0,'©|¥¼³]¸m/data/³o­Ó¥Ø¿ý¡C'); } unless (-e $tmp_dir) { &error('³]¸m¿ù»~',0,'©|¥¼³]¸m/tmp/³o­Ó¥Ø¿ý¡C'); } if (!$admin_passwd) { &error('³]©w¿ù»~',0,'ºÞ²z¥Îªº¥[±K±K½X©|¥¼³]©w¡C'); } if ($admin_passwd =~ /^\$1\$/) { $MD5 = 1; } else { $MD5 = 0; } if ($background) { $background = $image_url . $background; } else { $background = ""; } if ($background2) { $background2 = $image_url . $background2; } else { $background2 = ""; } if ($SETUP{'centering'}) { $center1 = '
'; $center2 = '
'; } #--- Host ¸ê®Æªº½Õ¬d ---# $host = $ENV{'REMOTE_HOST'}; $addr = $ENV{'REMOTE_ADDR'}; if ($host eq '') { $host = $addr; } if ($host eq $addr) { $host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr; } $deny_host = $host; $deny_addr = $addr; $host = $host_mail = "$host \[$addr\] \- $ENV{'HTTP_USER_AGENT'}"; $host =~ s//>/g; #--- ®»¨ú cookie ªº¸ê®Æ ---# @pairs = split(/;/,$ENV{'HTTP_COOKIE'}); foreach $pair (@pairs) { ($key,$val) = split(/=/,$pair,2); $key =~ s/ //g; if ($key eq $ENV{'SCRIPT_NAME'}) { @pairs = split(/,/,$val); foreach $pair (@pairs) { ($key,$val) = split(/:/,$pair,2); $COOKIE{$key} = $val; } last; } } #--- ¿é¤J ---# &ReadParse; if ($in{'img'} eq "copyright") { ©right; exit; } elsif ($in{'img'} ne "") { &image($base_path,$in{'img'}); exit; } if ($in{'imgt'} ne "") { &image($tmp_dir,$in{'imgt'}); exit; } if ($in{'mail'} ne "") { &mail($in{'mail'}); exit; } while (($key,$val) = each %in) { if ($key eq "_attc") { next; } # &jcode'h2z_sjis(*val); # ¥b¨¤Ç§ÇÆ¡÷¥þ¨¤(SJIS)ÅÜ´« # &jcode'convert(*val,'sjis'); # SJISÅÜ´« $val =~ s///g; $val =~ s/\t//g; $val =~ s/\r\n/\n/g; # Win¡÷Unix $val =~ s/\r/\n/g; # Mac¡÷Unix $val =~ s/&/&/g; $val =~ s/"/"/g; $val =~ s//>/g; if ($key eq ";check;") { $check = 1; } elsif ($key =~ /R;(\d+);/) { $in{'_resp'} = $1; } elsif ($key =~ /E;(.+);/) { $in{'_edit'} = $1; } elsif ($key =~ /D;(.+);/) { $in{'_remove'} = $1; } else { $in{$key} = $val; } } $COOKIE_CHECK = $in{'_cookie'}; if ($admin_passwd =~ /^\$1\$/) { $salt = 5; } else { $salt = 2; } if (crypt($in{'passwd'},substr($admin_passwd,0,$salt)) eq $admin_passwd) { $level = "[¨t²ÎºÞ²zªÌ]"; $MASTER = 1; } if ($in{'_action'} eq "regist") { ®ist; } elsif ($in{'_edit'}) { &edit; exit; } elsif ($in{'_resp'}) { if ($in{'uname'} eq "") { $in{'uname'} = $COOKIE{'uname'}; } if ($in{'email'} eq "") { $in{'email'} = $COOKIE{'email'}; } if ($in{'tm'} eq "") { $in{'tm'} = $COOKIE{'tm'}; } if ($in{'passwd'} eq "") { $in{'passwd'} = $COOKIE{'passwd'}; } &form2; exit; } &html; exit; #--------------------------------------------------------------------------- # ®»¨úÀÉ®× #--------------------------------------------------------------------------- sub getdir { $check = (eval { opendir(DIR,$base_path); }, $@ eq ""); if (!$check) { &error("¨t²Î¿ù»~",0,"ÀÉ®×µLªk¨ú±o¡C"); } undef %RESP; @BASE = (); @list = readdir(DIR); foreach $file (@list) { next if -d $file; if ($file =~ /^(\d+)\.(\d+)\.$ext$/) { $RESP{$1} .= "\0" if (defined($RESP{$1})); $RESP{$1} .= $file; } elsif ($file =~ /^(\d+)\.$ext$/) { push(@BASE,$1); } } close(DIR); @BASE = sort { $b <=> $a; } @BASE; # ­«·s±Æ§Ç }#getdir #--------------------------------------------------------------------------- # ±½°£ #--------------------------------------------------------------------------- sub temp_remove { $check = (eval { opendir(DIR,$tmp_dir); }, $@ eq ""); if (!$check) { &error("¨t²Î¿ù»~",0,"ÀÉ®×µLªk¨ú±o¡C"); } @list = readdir(DIR); foreach $file (@list) { next if -d $file; if (-M "$tmp_dir$file" > 0.25) { unlink "$tmp_dir$file"; } # §R°£¶W¹L¤»¤p®Éªº¼È¦sÀÉ®× } close(DIR); }#getdir #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub remove { local($target,$sw) = @_; foreach $number (split("\0",$target)) { undef %DEL; if (open(IN,"$base_path$number\.$ext")) { while () { s/\n//g; if (/^$/) { last; } ($key,$val) = split(/\t/); if ($key eq "pwd" || $key eq "attc") { $DEL{$key} .= "\0" if (defined($DEL{$key})); $DEL{$key} .= $val; } } close(IN); } else { push(@REMOVE_ERR,"$level No.$number¦b¤§«e¤w¸g³Q§R°£±¼¤F¡C"); next; } if ($MASTER || $sw) { ; } else { if ($DEL{'pwd'} eq "") { push(@REMOVE_ERR,"$level No.$number¦]¬°¿ù»~¥N½X(2)ªº­ì¦]µLªk§R°£¡A½Ð¬¢¸ß¨t²ÎºÞ²zªÌ¡C"); next; } if ($DEL{'pwd'} =~ /^\$1\$/) { $salt = 5; } else { $salt = 2; } if (crypt($in{'passwd'},substr($DEL{'pwd'},0,$salt)) eq $DEL{'pwd'}) { $remove_ok = 1; } } if ($remove_ok || $MASTER || $sw) { &getdir; if (-e "$base_path$number\.$ext") { $chk = unlink "$base_path$number\.$ext"; if ($chk) { push(@REMOVE_ERR,"$level No.$numberªº§R°£§@·~§¹¦¨¡C"); } else { push(@REMOVE_ERR,"$level No.$numberªº§R°£§@·~¥¢±Ñ¡C"); } } foreach (split("\0",$DEL{'attc'})) { if (!-e "$base_path$_") { next; } $chk = unlink "$base_path$_"; if ($chk) { push(@REMOVE_ERR,"$level No.$number¤¤ªºªþ¥[¹Ï¹³$_§R°£§¹¦¨¡C"); } else { push(@REMOVE_ERR,"$level No.$number¤¤ªºªþ¥[¹Ï¹³$_«d°£¥¢±Ñ¡C"); } } foreach $img_file (split("\0",$in{'attc'})) { unlink "$tmp_dir$img_file"; } foreach $res_file (split("\0",$RESP{$target})) { ($number,$num,$ext2) = split(/\./,$res_file); $number = "$number\.$num"; undef %DEL; if (open(IN,"$base_path$res_file")) { while () { s/\n//g; if (/^$/) { last; } ($key,$val) = split(/\t/); if ($key eq "pwd" || $key eq "attc") { $DEL{$key} .= "\0" if (defined($DEL{$key})); $DEL{$key} .= $val; } } close(IN); } else { push(@REMOVE_ERR,"$level No.$number¤w¸g³Q§R°£¤F¡C"); next; } if (-e "$base_path$res_file") { $chk = unlink "$base_path$res_file"; if ($chk) { push(@REMOVE_ERR,"$level No.$numberªº§R°£§@·~§¹¦¨¡C"); } else { push(@REMOVE_ERR,"$level No.$numberªº§R°£§@·~¥¢±Ñ¡C"); } } foreach (split("\0",$DEL{'attc'})) { if (!-e "$base_path$_") { next; } $chk = unlink "$base_path$_"; if ($chk) { push(@REMOVE_ERR,"$level No.$number¤¤ªºªþ¥[¹Ï¹³$_§R°£§¹¦¨¡C"); } else { push(@REMOVE_ERR,"$level No.$number¤¤ªºªþ¥[¹Ï¹³$_«d°£¥¢±Ñ¡C"); } } } } else { push(@REMOVE_ERR,"$level No.$numberªº±K½X¤£²Å¡A¦]¦¹µLªk§R°£¡C"); } } }#remove #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub html { &temp_remove; &getdir; #--- À˯Á ---# $page = $SETUP{'page'}; if ($in{'ff'} eq '') { $FF = 0; } else { $FF = $in{'ff'}; } $TO = $FF + $page - 1; if ($TO > $#BASE) { $TO = $#BASE; } $hit = 0; $next_num = ''; foreach $num ($FF .. $#BASE) { $number = $BASE[$num]; if ($in{'strings'} ne '') { if (open(IN,"$base_path$number\.$ext")) { while () { s/\n//g; if (/^$/) { last; } ($key,$val) = split(/\t/); $LOG{$key} = $val; } close(IN); } else { next; } $search_strings = "$LOG{'email'} $LOG{'uname'} $LOG{'title'} $number"; &jcode'convert(*search_strings,'euc'); if ($search_strings =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$in{'strings'}/i) { ; } else { next; } } if ($in{'ff'} ne '') { # ²Ä¤G­¶¥H«á $allhits = $in{'allhits'}; if ($hit == $page) { last; } else { push(@NEW,$number); $hit++; } } else { # ²Ä¤@­¶ªº³B²z(»s§@¥þ¯Á¤Þ) if ($allhits % $page == 0) { push(@Index,$num); } if ($hit < $page) { $hit++; push(@NEW,$number); } $allhits++; } } push(@Buf,"allhits=$allhits"); $in{'allhits'} = $allhits; if ($in{'ff'} ne '') { @Index = split(/\s/,$in{'idx'}); } $count_new = @NEW; if ($in{'_number'} eq "") { $in{'_number'} = time; } #--- ¤@Äý ---# print "Content-type: text/html\n\n"; print <<"EOF"; $SETUP{'title'} $SETUP{'body'} $center1 $SETUP{'head_message'} EOF if ($in{'uname'} eq "") { $in{'uname'} = $COOKIE{'uname'}; } if ($in{'email'} eq "") { $in{'email'} = $COOKIE{'email'}; } if ($in{'tm'} eq "") { $in{'tm'} = $COOKIE{'tm'}; } if ($in{'passwd'} eq "") { $in{'passwd'} = $COOKIE{'passwd'}; } if ($in{'_cookie'} eq '') { $in{'_cookie'} = 1; } if ($in{'resmail'} eq '') { $in{'resmail'} = 0; } &form; if (!@NEW) { print <<"EOF";
EOF if (@REMOVE_ERR && !$auto_remove) { print "

¡´§R°£ª¬ªp

    \n"; foreach $i (0 .. $#REMOVE_ERR) { print "
  • $REMOVE_ERR[$i]\n"; } print "
"; } print <<"EOF";

¡³¨S¦³¥ô¦ó¯d¨¥

EOF } else { print "\n"; print "¦@ $in{'allhits'} ½g [ "; $buf = join('&',@Buf); $idx = join('+',@Index); foreach (0 .. $#Index) { $view_page = $_ + 1; if ($FF == $Index[$_] || ($in{'ff'} eq '' && $_ == 0)) { print " ¡õ"; $page_now = $view_page; } elsif ($view_page == 1) { print " $view_page"; } else { print " $view_page"; } } $FROM = $page_now * $page - ($page - 1); $LAST = $FROM + $count_new - 1; print <<"EOF"; ] [­«·s¾ã²z] [$SETUP{'bye_name'}]


²Ä $page_now ­¶($FROM¡ã$LAST) EOF if (@REMOVE_ERR && !$auto_remove) { print "

¡´§R°£ª¬ªp

    \n"; foreach $i (0 .. $#REMOVE_ERR) { print "
  • $REMOVE_ERR[$i]\n"; } print "
"; } print <<"EOF";
EOF foreach $number (@NEW) { undef %FILE; $head_end = 0; if (open(IN,"$base_path$number\.$ext")) { while () { if ($head_end) { $FILE{'value'} .= $_; next; } elsif (/^$/) { $head_end = 1; } s/\n//g; ($key,$val) = split(/\t/); $FILE{$key} .= "\0" if (defined($FILE{$key})); $FILE{$key} .= $val; } close(IN); } else { next; } if ($FILE{'tm'}) { $EMAIL = " - <±Hµo¹q¤l¶l¥ó¡]¥»¥\\¯à¥Ø«eµL®Ä¡^>"; } elsif ($FILE{'email'}) { $EMAIL = " - <$FILE{'email'}>"; } else { $EMAIL = ""; } $VALUE = $FILE{'value'}; if ($FILE{'link'} == 1) { $VALUE =~ s/"/"/g; $VALUE =~ s/(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/$1\:$2<\/a>/ig; } elsif ($FILE{'link'} == 2) { $VALUE = &tag($VALUE); } if ($view_host) { $HOST = " - $FILE{'host'}"; } else { $HOST = ""; } if ($resmail && $FILE{'resmail'}) { $RESMAIL = " - ¶}±Ò¦^À³³q³ø"; } else { $RESMAIL = ""; } print <<"EOF";
$FILE{'title'} ¤Þ¨¥
¡@ $FILE{'date'} - $FILE{'uname'}$EMAIL$HOST - No.$number$RESMAIL
EOF if ($FILE{'attc'}) { print "\n"; } $i = 0; foreach (split("\0",$FILE{'attc'})) { $i++; print "\n"; } if ($FILE{'attc'}) { print "
"; print "\"(ªþ¥[$i)
\n"; } if ($FILE{'mode'} == 1) { $VALUE =~ s/\n/
\n/g; print $VALUE; } # ´«¦æ¦³®Ä(1) else { $VALUE =~ s/\n//g; print $VALUE; } # ´«¦æµL®Ä(2) print "

\n"; #--- ªð«H³¡¤À ---# # foreach $res_file (sort { (split(/\./,$b,3))[1]<=>(split(/\./,$a,3))[1]; } split("\0",$RESP{$number})) { foreach $res_file (sort { (split(/\./,$a,3))[1]<=>(split(/\./,$b,3))[1]; } split("\0",$RESP{$number})) { ($number,$num,$ext2) = split(/\./,$res_file,3); $number = "$number\.$num"; undef %FILE; $head_end = 0; if (open(IN,"$base_path$res_file")) { while () { if ($head_end) { $FILE{'value'} .= $_; next; } elsif (/^$/) { $head_end = 1; } s/\n//g; ($key,$val) = split(/\t/); $FILE{$key} .= "\0" if (defined($FILE{$key})); $FILE{$key} .= $val; } close(IN); } else { next; } if ($FILE{'tm'}) { $EMAIL = " - <µo°e¹q¤l¶l¥ó>"; } elsif ($FILE{'email'}) { $EMAIL = " - <$FILE{'email'}>"; } else { $EMAIL = ""; } $VALUE = $FILE{'value'}; if ($FILE{'link'} == 1) { $VALUE =~ s/"/"/g; $VALUE =~ s/(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/$1\:$2<\/a>/ig; } elsif ($FILE{'link'} == 2) { $VALUE = &tag($VALUE); } if ($view_host) { $host = " - $FILE{'host'}"; } else { $host = ""; } print <<"EOF";
¦^À³$num ¦^À³-$num
¡@$FILE{'date'} - $FILE{'uname'}$EMAIL$host - No.$number
EOF if ($FILE{'attc'}) { print "\n"; } $i = 0; foreach (split("\0",$FILE{'attc'})) { $i++; print "\n"; } if ($FILE{'attc'}) { print "
"; print "\"(ªþ¥[$i)
\n"; } if ($FILE{'mode'} == 1) { $VALUE =~ s/\n/
\n/g; print $VALUE; } # §ï¦æ¦³®Ä(1) else { $VALUE =~ s/\n//g; print $VALUE; } # §ï¦æµL®Ä(2) print <<"EOF";

EOF } print <<"EOF";

EOF }#foreach $number (@NEW) ... } print "

\n"; if ($report) { $REPORT = "| §ë½Z Report ON "; } if ($in{'allhits'}) { print '¦@'."$in{'allhits'}½g(¦^ÂЯd¨¥°£¥~) | ª½±µ¸õ­¶¡÷[ "; foreach (0 .. $#Index) { $view_page = $_ + 1; if ($FF == $Index[$_] || ($in{'ff'} eq '' && $_ == 0)) { print " ¡ô"; $page_now = $view_page; } elsif ($view_page == 1) { print " $view_page"; } else { print " $view_page"; } } print " ]


\n"; print "¯d¨¥¤W­­$SETUP{'max'}½g $REPORT| ±H«Hµ¹ºÞ²zªÌ"; } $help = $image_url . "help.html"; print <<"EOF"; | ¡H¨D§U EOF #--- ¥H¤U¬°µÛ§@Åvªí¥Ü(¦pªG±N¤§§R°£ªº¸Ü¡A«hµø¬°¤£¦Xªk¨Ï¥Î) ---# $banners_url = "$image_url" . "copyright.gif"; $banners_path = "$image_path" . "copyright.gif"; print ""; if (!-e $banners_path) { $banners = "$reload\?img=copyright"; } else { $banners = $banners_url; } print <<"EOF";
MiniBBS-EX $vers
$center2 EOF }#html #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub check { if ($in{'tm'}) { $EMAIL = " - <µo°e¹q¤l¶l¥ó>"; } elsif ($in{'email'}) { $EMAIL = " - <$in{'email'}>"; } if ($MASTER) { $HOST = "Edit by Super-User"; } else { $HOST = $host; } if ($view_host) { $HOST = " - $HOST"; } else { $HOST = ""; } if ($resmail && $in{'resmail'}) { $RESMAIL = " - ¶}±Ò¦^À³³q³ø"; } else { $RESMAIL = ""; } $VALUE = $in{'_value'}; if ($in{'link'} == 1) { $VALUE =~ s/"/"/g; $VALUE =~ s/(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/$1\:$2<\/a>/ig; } elsif ($in{'link'} == 2) { $VALUE = &tag($VALUE); } print <<"EOF";
$in{'title'}
¡@ $date_now - $in{'uname'}$EMAIL$HOST$RESMAIL
EOF if ($in{'attc'} || @IMAGES) { print "\n"; } $i = 0; foreach $image_file (split("\0",$in{'attc'})) { $i++; print "\n"; } foreach $image_file (@IMAGES) { $i++; print "\n"; } if ($in{'attc'} || @IMAGES) { print "
"; print "\"(ªþ¥[$i)
"; print "\"(ªþ¥[$i)
\n"; } if ($in{'mode'} == 1) { $VALUE =~ s/\n/
\n/g; print $VALUE; } # ´«¦æ¦³®Ä(1) else { $VALUE =~ s/\n//g; print $VALUE; } # ´«¦æµL®Ä(2) print <<"EOF";

EOF }#check #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub regist { if ($ref_check) { $ref = $ENV{'HTTP_REFERER'}; $ref =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; if ($ref !~ /$reload/) { &error('¤£¦Xªkªº¦s¨ú',0,'±q¤U¤@­¶¥H¥~ªº­¶­±¦s¨ú¬Ò¤£¨ü²z¡C
¡÷'." $reload"); } } if ($in{'_edit'}) { if ($in{'_editc'} =~ /^\$1\$/) { $salt = 5; } else { $salt = 2; } if ($in{'passwd'} eq '') { push(@ERR,'½Ð¿é¤J¯d¨¥®É¿é¤Jªº±K½X'); } elsif ($MASTER) { ; } elsif (crypt($in{'passwd'},substr($in{'_editc'},0,$salt)) ne $in{'_editc'}) { push(@ERR,'±K½X¿ù»~¡AµLªk³B²z¡C'); } if ($in{'_remove'} && @ERR) { undef %in; return; } if ($in{'_remove'}) { &remove($in{'_remove'},0); undef %in; return; } } if ($in{'uname'} eq '') { push(@ERR,'½Ð¿é¤J±zªº¼ÊºÙ¡C'); } elsif (length($in{'uname'}) > 30) { push(@ERR,'¦W¦r½Ð±±¨î¦b 30 bytes¡]15 ­Ó¥þ«¬¦r¡^¥H¤º¡C'); } elsif ($in{'uname'} =~ /[;:,=]+/) { push(@ERR,'¦b¦W¦r¤¤¤£¯à¦³;:,=µ¥¦r¤¸'); } if ($in{'email'} ne '' && $in{'email'} !~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/) { push(@ERR,'¹q¤l¶l¥ó¦a§}½Ð¥Î¥b«¬¦r¥¿½T¦a¿é¤J¡C'); undef $in{'email'}; } elsif ($in{'email'} =~ /[;:,=\s]+/) { push(@ERR,"¹q¤l¶l¥ó¦a§}¤¤¤£¯à¦³;:,=µ¥¦r¤¸"); } if ($in{'tm'} && !$in{'email'}) { push(@ERR,"¹q¤l¶l¥ó¦a§}¤£¤½¶}¡A¦ý¬°¤F­n¯à°÷¦¬«H¡A½Ð¿é¤J±zªº¹q¤l¶l¥ó¦a§}¡C"); } if ($in{'resmail'} && !$in{'email'}) { push(@ERR,"¦pªG­n¨Ï¥Î¦^À³³q³ø³o­Ó¥\¯à¡A±z¥²¶·¿é¤J§Aªº¹q¤l¶l¥ó¦a§}¡C"); } if ((!$in{'_resp'} && $in{'_edit'} !~ /\./) && $in{'title'} eq '') { push(@ERR,"½Ð¿é¤J¼ÐÃD"); } elsif ((!$in{'_resp'} && $in{'_edit'} !~ /\./) && length($in{'title'}) > 50) { push(@ERR,"¼ÐÃD¤å¦r½Ð±±¨î¦b 50 bytes ¡]25 ­Ó¥þ«¬¤å¦r¡^¥H¤º¡C"); } if ($in{'_value'} eq '') { push(@ERR,"½Ð¿é¤J¯d¨¥¤º®e¡C"); } if ($in{'passwd'} eq '') { push(@ERR,"¬°¤F­n¯à°÷§R°£¤§«eªº¯d¨¥¡A½Ð¿é¤J±K½X¡C"); } elsif ($MASTER) { ; } elsif (length($in{'passwd'}) < 4 || length($in{'passwd'}) > 8) { push(@ERR,"±K½X½Ð¿é¤J 4 ¦Ü 8 ­Ó¼Æ¦r¡C"); } elsif (!$in{'_edit'} && $in{'passwd'} =~ /\D/) { push(@ERR,"±K½XÄæ½Ð¿é¤J¥b«¬¼Æ¦r¡C"); } if ($in{'_attc'}) { &attc; } if ($check) { &form2; exit; } if (@ERR) { &form2; exit; } $pwd = &MakeCrypt($in{'passwd'}); if (@ERR) { &form2; exit; } umask(000); foreach $img_file (split("\0",$in{'attc'})) { push(@IMAGES,$img_file); } if ($in{'_edit'}) { $in{'_number'} = $in{'_edit'}; } elsif ($in{'_resp'}) { opendir(DIR,$base_path); @list = readdir(DIR); foreach $file (@list) { next if -d $file; if ($file =~ /^($in{'_resp'})\.(\d+)\.$ext$/) { push(@NEXT_NUM,$2); } } close(DIR); if (!@NEXT_NUM) { $next_num = 1; } else { @NEXT_NUM = sort { $b <=> $a; } @NEXT_NUM; $next_num = $NEXT_NUM[0] + 1; } $in{'_number'} = "$in{'_resp'}\.$next_num"; } else { $in{'_number'} = time; } if (open(DATA,"> $base_path$in{'_number'}\.$ext")) { print DATA "date\t$date_now\n"; if (!$in{'realtime'}) { $realtime = time; print DATA "realtime\t$realtime\n"; } else { print DATA "realtime\t$in{'realtime'}\n"; } print DATA "pwd\t$pwd\n"; if ($MASTER) { $HOST = "Edit by Super-User"; } # ¤å¦r¦C"Edit by"ÇV·N¨ýÇy«ùÇJÇMÆêÇeÇ@. else { if ($ENV{'REMOTE_USER'}) { $HOST = $host . " - $ENV{'REMOTE_USER'}"; } else { $HOST = $host; } } print DATA "host\t$HOST\n"; $w = 0; while (($key,$val) = each %in) { if ($key =~ /^_/ || $key eq "attc" || $key eq "passwd" || $key eq "realtime") { next; } foreach (split("\0",$val)) { print DATA "$key\t$_\n"; } } foreach (@IMAGES) { $w++; ($filename,$ext2) = split(/\./,$_,2); print DATA "attc\t$in{'_number'}\.$w\.$ext2\n"; } print DATA "\n"; print DATA "$in{'_value'}\n"; close(DATA); chmod(0666,"$base_path$in{'_number'}\.$ext"); } else { push(@ERR,"Åv­­³]©w¿ù»~¡AµLªk¼g¤J¡C"); } if (@ERR) { if ($in{'_edit'}) { $in{'_number'} = ""; } &form2; exit; } $w = 0; foreach $img_file (@IMAGES) { $w++; ($number,$ext2) = split(/\./,$img_file,2); if (open(IMG,"$tmp_dir$img_file")) { @data = ; close(IMG); unlink("$tmp_dir$img_file"); if (open(IMG,"> $base_path$in{'_number'}\.$w\.$ext2")) { print IMG @data; close(IMG); } chmod(0666,"$base_path$in{'_number'}\.$w\.$ext2"); push(@ATTC,"$in{'_number'}\.$w\.$ext2"); } } if ($in{'_resp'} || $in{'_edit'} =~ /\./) { if ($in{'_resp'}) { $RES_BASE = $in{'_resp'}; } elsif ($in{'_edit'}) { ($RES_BASE,$num) = split(/\./,$in{'_edit'}); } undef %FILE; $head_end = 0; if (open(IN,"$base_path$RES_BASE\.$ext")) { while () { if ($head_end) { last; } elsif (/^$/) { $head_end = 1; } s/\n//g; ($key,$val) = split(/\t/); $FILE{$key} .= "\0" if (defined($FILE{$key})); $FILE{$key} .= $val; } close(IN); } if ($resmail && $FILE{'resmail'}) { &report($FILE{'email'}); } } if ($report) { &report; } #--- Cookie Set ---# ($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + 30*24*60*60); $y0="Sunday"; $y1="Monday"; $y2="Tuesday"; $y3="Wednesday"; $y4="Thursday"; $y5="Friday"; $y6="Saturday"; $m0="Jan"; $m1="Feb"; $m2="Mar"; $m3="Apr"; $m4="May"; $m5="Jun"; $m6="Jul"; $m7="Aug"; $m8="Sep"; $m9="Oct"; $m10="Nov"; $m11="Dec"; @youbi = ($y0,$y1,$y2,$y3,$y4,$y5,$y6); @monthg = ($m0,$m1,$m2,$m3,$m4,$m5,$m6,$m7,$m8,$m9,$m10,$m11); $date_gmt = sprintf("%s\, %02d\-%s\-%04d %02d:%02d:%02d GMT",$youbi[$wdayg],$mdayg,$monthg[$mong],$yearg +1900,$hourg,$ming,$secg); if (!$MASTER) { if ($COOKIE_CHECK) { print "Set-Cookie: $ENV{'SCRIPT_NAME'}=uname:$in{'uname'}\,email:$in{'email'}\,tm:$in{'tm'}\,passwd:$in{'passwd'}; path=$path; expires=$date_gmt\n"; $COOKIE{'uname'} = $in{'uname'}; $COOKIE{'email'} = $in{'email'}; $COOKIE{'passwd'} = $in{'passwd'}; $COOKIE{'tm'} = $in{'tm'}; } else { print "Set-Cookie: $ENV{'SCRIPT_NAME'}=uname:\,email:\,tm:\,passwd:; path=$path; expires=$date_gmt\n"; $COOKIE{'uname'} = ""; $COOKIE{'email'} = ""; $COOKIE{'passwd'} = ""; $COOKIE{'tm'} = ""; } } undef %in; @IMAGES = (); if ($SETUP{'max'} != 0) { #--- ¥ó¼Æ½Õ¾ã --# &getdir; $list_count = @BASE; $remove_count = $list_count - $SETUP{'max'}; if ($remove_count > 0) { foreach (1 .. $remove_count) { $auto_remove = 1; $remobe_target = $#BASE - $_ + 1; &remove($BASE[$remobe_target],1); } } } &html; exit; }#regist #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub attc { foreach (@in) { $image_number = sprintf("%04d%02d%02d%02d%02d%02d",$year +1900,$mon +1,$mday,$hour,$min,$sec); ($fname) = $_ =~ /\bfilename="([^"]*)"/i; ($fname) = $_ =~ /\bfilename=([^\s:;]+)/i unless defined $fname; if ($fname eq '') { next; } ($name) = $_ =~ /\bname="([^"]+)"/i; ($name) = $_ =~ /\bname=([^\s:;]+)/i unless defined $name; ($ctype) = $_ =~ /\s*Content-type:\s*"([^"]+)"/i; ($ctype) = $_ =~ /\s*Content-Type:\s*([^\s:;]+)/i unless defined $ctype; unless ($ctype =~ /^image/i) { push(@ERR,"ªþ¥[ªºÀɮר䣬O¥¿½Tªº¹Ï«¬ÀɮסC"); return(); } if (length($in{'_attc'}) > $attc_image_max) { 1 while $attc_image_max =~ s/(.*\d)(\d\d\d)/$1,$2/g; push(@ERR,"¤@±i¹Ï¤ùªºÀɮפj¤p³Ì¦h¥u¯à¬° $attc_image_max bytes¡C"); return(); } if ($name =~ /attc/) { $fname = reverse("$fname"); ($fname) = split(/\\|\/|\:/,$fname); $fname = reverse("$fname"); ($fname,$ext2) = split(/\./,$fname); if (!open(IMAGE,"> $tmp_dir$image_number\.$ext2")) { push(@ERR,"Åv­­³]©w¿ù»~¡AµLªk¼g¤J¡C"); return(); } print IMAGE $in{$name}; close(IMAGE); chmod(0666,"$tmp_dir$image_number\.$ext2"); } push(@IMAGES,"$image_number\.$ext2"); } }#attc #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub form { if (!$in{'_edit'} && $in{'passwd'} eq "") { $in{'passwd'} = &MakeStr(4); } if ($MASTER) { $pass_message = '¡]²{¦b¬°ºÞ²zªÌ¼Ò¦¡¡^½Ð¿é¤JºÞ²zªÌªº±K½X¡C'; } elsif ($in{'_edit'}) { $pass_message = '½Ð¿é¤J¯d¨¥®É¿é¤Jªº±K½X¡C'; } else { $pass_message = '¦b§R°£¡]©ÎÅܧó¡^¥»¯d¨¥®É·|¥Î¨ì'; } if ($in{'tm'} eq "") { $in{'tm'} = 0; } $toku_email_checked{$in{'tm'}} = " checked"; if ($in{'link'} eq '') { $in{'link'} = 1; } $link_checked{$in{'link'}} = " checked"; if ($in{'mode'} eq '') { $in{'mode'} = 1; } $mode_checked{$in{'mode'}} = " checked"; $resmail_checked{$in{'resmail'}} = " checked"; $cookie_checked{$in{'_cookie'}} = " checked"; if ($in{'_value'} eq '') { #¤Þ¨¥³B²z if ($in{'_quote'}) { foreach $quot_num (split("\0",$in{'_quote'})) { undef %FILE; $head_end = 0; if (open(IN,"$base_path$quot_num\.$ext")) { while () { if ($head_end) { $FILE{'value'} .= $_; next; } elsif (/^$/) { $head_end = 1; } s/\n//g; ($key,$val) = split(/\t/); $FILE{$key} .= "\0" if (defined($FILE{$key})); $FILE{$key} .= $val; } close(IN); if ($FILE{'mode'} == 2) { $FILE{'value'} =~ s/\n//g; } @VALs = split(/\n/,$FILE{'value'}); foreach (@VALs) { if ($FILE{'link'} == 2) { # ²¾°£ tag s/<//g; s/<[^<>]*>//g; s//>/g; } $QVALUE .= "$FILE{'uname'}> $_\n"; } } $QVALUE .= "\n\n"; } $in{'_value'} = $QVALUE; } } @line_count = split(/\n/,$in{'_value'}); $line_count = @line_count; if (!$in{'_edit'} && !$in{'_resp'}) { $start_view = "\#top"; } print <<"EOF";
EOF if ($in{'realtime'}) { print "\n"; } if ($in{'_number'}) { print "\n"; } if ($in{'_resp'}) { print "\n"; } if ($in{'_edit'}) { print "\n"; print "\n"; } print <<"EOF"; EOF if (@ERR) { print "\n"; print "\n"; # Spacer } print <<"EOF"; EOF if (!$in{'_resp'} && $in{'_edit'} !~ /\./) { print <<"EOF"; EOF } print <<"EOF"; EOF if ($use_image) { print <<"EOF"; \n"; } else { print "¡]¤@«h¯d¨¥³Ì¦h¶È¯àªþ¥[$attc_count_max±i¹ÏÀÉ)\n"; } $button_message = " or °l¥[¹ÏÀÉ"; $rem2 = "(¡°2) ¦pªG¹ÏÀɪº¸ô®|¤¤¦³ªÅ¥Õ¦r¤¸©Î¥þ«¬¤å¦r¡A¦³¥i¯à·|³B²z¤£¥¿½T¡C
" }#use_image if ($in{'passwd'} eq "") { $in{'passwd'} = $COOKIE{'passwd'}; } if ($in{'_edit'}) { $type = "password"; } else { $type = "text"; } print <<"EOF"; EOF if (!$MASTER && $in{'_edit'} && (time - $in{'realtime'} > $edit_limit)) { print <<"EOF"; EOF } else { print <<"EOF"; EOF } print <<"EOF";

¡´¿é¤J¤£¥¿½T

    \n"; foreach $i (0 .. $#ERR) { print "
  • $ERR[$i]\n"; } print "
¦W¦r
¹q¤l¶l¥ó¦a§} EOF if ($resmail && !$in{'_resp'}) { print " ¦^À³³q³ø¡]¦pªG¦³¤H¦^À³ªº¸Ü¡A´N·|±H email ³qª¾¡^"; } print <<"EOF";
¤£·Q¤½¶}¹q¤l¶l¥ó¦a§}¡A¦ý¤´¥i¦¬¨ì«H ¤½¶}©Î¬O¤£¯d¹q¤l¶l¥ó¦a§}
¼ÐÃD
¤º¤å EOF if ($in{'_quote'}) { print "¡°½Ð¾¨¥i¯à§R°£¤£¥²­nªº¤Þ¨¥¡C
"; } if ($line_count) { if ($line_count > 30) { $rows = 30; } elsif ($line_count < 10) { $rows = 10; } else { $rows = $line_count; } } else { $rows = 10; } print <<"EOF"; ´«¦æµL®Ä ´«¦æ¦³®Ä


¦Û°Ê¬°¤º¤å¤¤ªº URL «Ø¥ßÁåµ²¡C ¨Ï¥Î HTML Tag(¡°1)¡C¡]µo¥X¯d¨¥«e½Ð¥ý¹wÄý½T»{µL»~¡^
ªþ¥[¹ÏÀÉ EOF if ($in{'_edit'}) { $b_name = "¦A"; } else { $b_name = ""; } $image_count = 0; foreach $img_file (split("\0",$in{'attc'})) { $image_count++; print "\n"; $size = -s ("$tmp_dir$img_file"); 1 while $size =~ s/(.*\d)(\d\d\d)/$1,$2/g; print "ªþ¥[($image_count) - $img_file - $size Bytes
\n"; } foreach $img_file (@IMAGES) { $image_count++; print "\n"; $size = -s ("$tmp_dir$img_file"); 1 while $size =~ s/(.*\d)(\d\d\d)/$1,$2/g; print "ªþ¥[($image_count) - $img_file - $size Bytes
\n"; } if ($image_count) { $j = "°l¥["; } else { $j = ""; } print "
\n"; if ($image_count < $attc_count_max) { print "$jÀɦW (¡°2)
±K½X ¡ö$pass_message EOF if ($in{'_edit'} ne "") { print "¡÷ "; } else { print ""; } print <<"EOF";
¯d¨¥§¹¦¨¶W¹L30¤À«á´NµLªk¦A½s¿è¡B­×¥¿¡C
Àx¦s³]©w ¡@¡@¡@¡@

(¡°1) ¯à°÷¨Ï¥Îªº tag ¦³¡G <B>¡]²ÊÅé¡^ <I>¡]±×Åé¡^ <U>¡]©³½u¡^ <FONT>¡]¦r«¬­×¹¢¡^ <A>¡]¶WÁåµ²¡^¡C ½Ð¤£­n§Ñ¤FÃö³¬ tag¡I
$rem2 (¡°3) ¯d¨¥«á 30 ¤À¤§¤ºÁÙ¥i¥H½s¿è¡]­×¥¿¡B°l¥[¹ÏÀÉ¡^¡C

EOF }#form #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub form2 { if ($in{'_edit'}) { $board_name = "½s¶°©Î«d°£½s¸¹ $in{'_edit'} ¸¹ªº¯d¨¥"; } elsif ($in{'_resp'}) { $board_name = "¦^À³½s¸¹ $in{'_resp'} ¸¹ªº¯d¨¥"; } else { $board_name = "¯d¨¥"; } print "Content-type: text/html\n\n"; print <<"EOF"; $SETUP{'title'} $SETUP{'body'} $center1

$board_name

EOF if ($check) { ✓ } if ($in{'_cookie'} eq '') { $in{'_cookie'} = 1; } &form; print <<"EOF";

[©ñ±ó°õ¦æ¡A¦^¨ì«e¤@­¶]

$center2 EOF }#form2 #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub edit { $head_end = 0; if (open(IN,"$base_path$in{'_edit'}\.$ext")) { while () { if ($head_end) { $in{'_value'} .= $_; next; } elsif (/^$/) { $head_end = 1; } s/\n//g; ($key,$val) = split(/\t/); $in{$key} .= "\0" if (defined($in{$key})); $in{$key} .= $val; } close(IN); } else { &error("Not Found $in{'_edit'}"); } if ($in{'_editc'} eq "") { if ($in{'passwd'} eq "") { $in{'passwd'} = $COOKIE{'passwd'}; } $in{'_editc'} = $in{'pwd'}; print "Content-type: text/html\n\n"; print <<"EOF"; $SETUP{'title'} $SETUP{'body'} $center1

½s¶°©Î«d°£½s¸¹$in{'_edit'}¸¹ªº¯d¨¥

EOF print <<"EOF";
±K½X
EOF } else { if ($in{'host'} =~ /Edit by/i) { $msg = "¦¹½g¯d¨¥¤w³QºÞ²zªÌ½s¿è¹L¡A¬G¯d¨¥ªÌµLªk«d°£©Î½s¿è¦¹½g¯d¨¥¡C"; } else { $msg = "±K½X¿ù»~¡AµLªk³B²z¡C"; } if ($in{'_editc'} =~ /^\$1\$/) { $salt = 5; } else { $salt = 2; } if ($in{'passwd'} eq '') { push(@ERR,"§ë½Ð¿é¤J¯d¨¥®É¿é¤Jªº±K½X"); } elsif ($MASTER) { ; } elsif (crypt($in{'passwd'},substr($in{'_editc'},0,$salt)) ne $in{'_editc'}) { &error("»{µý¿ù»~",12,$msg); } $image_number = sprintf("%04d%02d%02d%02d%02d%02d",$year +1900,$mon +1,$mday,$hour,$min,$sec); $w = 0; foreach $img_file (split("\0",$in{'attc'})) { $w++; ($number,$num,$ext2) = split(/\./,$img_file,3); if (open(IMG,"$base_path$img_file")) { @data = ; close(IMG); if (open(IMG,"> $tmp_dir$image_number\.$ext2")) { print IMG @data; close(IMG); } chmod(0666,"$tmp_dir$image_number\.$ext2"); push(@IMAGES,"$image_number\.$ext2") } $image_number++; } $in{'attc'} = ""; $in{'_value'} = substr($in{'_value'},0,length($in{'_value'})-1); if ($in{'_cookie'} eq '') { $in{'_cookie'} = 1; } if ($in{'resmail'} eq '') { $in{'resmail'} = 0; } print "Content-type: text/html\n\n"; print <<"EOF"; $SETUP{'title'} $SETUP{'body'} $center1

½s¶°©Î«d°£½s¸¹$in{'_edit'}¸¹ªº¯d¨¥

EOF &form; } print <<"EOF";

[©ñ±ó°õ¦æ¡A¦^¨ì«e¤@­¶]

$center2 EOF }#edit #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub MakeStr { local($count) = @_; local($str); @char = ('0'..'9'); srand(time|$$); foreach (1..$count) { { local(@temp); push(@temp,splice(@char,rand(@char),1)) while @char; @char = @temp; } $str = $char[($_)] . $str; } $str; }#MakeStr #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub MakeCrypt { local($plain) = @_; # ¿é¤J:©ú½X local(@char,$f,$now,@saltset,$pert1,$pert2,$nsalt,$salt); local($retry) = 5; @saltset = ('a'..'z','A'..'Z','0'..'9','.','/'); # ·t¸¹Æòºc¦¨ÆûÇsÇr¤å¦r¸s $now = time; # ¡õÆùÇUÃäÇV³qºÙ¡uÇpÆõÇGÇU¥»¡vÇy°Ñ·Ó srand(time|$$); $f = splice(@saltset,rand(@saltset),1) . splice(@saltset,rand(@saltset),1); ($pert1,$pert2) = unpack("C2",$f); $week = $now / (60*60*24*7) + $pert1 + $pert2 - length($plain); $nsalt = $saltset[$week % 64] . $saltset[$now % 64]; if ($MD5) { $csalt = "\$1\$"; } else { $csalt = ""; } while (crypt($plain,substr($result,0,$salt)) ne $result || $result eq '') { $result = crypt($plain,"$csalt$nsalt"); if ($result =~ /^\$1\$/) { $salt = 5; } else { $salt = 2; } if (--$retry <= 0) { push(@ERR,"±K½X³B²z¿ù»~¡A½Ð¦A«ö¤@¦¸¯d¨¥¶s¡C"); return(); } if ($result eq '') { sleep(3); } } return $result; # ©Ñ­È:·t¸¹ }#MakeCrypt #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub jis { local($msg) = @_; $msg =~ s/<//g; # &jcode'convert(*msg,'jis'); return $msg; }#jis #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub tag { local($_) = $_[0]; s/\n/\f/g; s/"/"/g; #¤¹³\¨Ï¥Î 1 while s/(.*)(<(b)>(.*)<\/b>)/$1$4<\/b>/i; 1 while s/(.*)(<(i)>(.*)<\/i>)/$1$4<\/i>/i; 1 while s/(.*)(<(u)>(.*)<\/u>)/$1$4<\/u>/i; #¤¹³\¨Ï¥Î 1 while s/<a([\s\w\=\#\"\'\+\-\?\:\@\^\.\!\/]+?)>(.+?)<\/a>/$2<\/a>/i; 1 while s/]*?)\f([^<>]*?)<\/a>//i; #¤¹³\¨Ï¥Î 1 while s/<font([\s\w\=\#\"\'\+\-\;\:\.]+?)>(.+?)<\/font>/$2<\/font>/i; 1 while s/]*?)\f([^<>]*?)<\/font>//i; s/\f/\n/g; $_; }#tag #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub image { if ($img_ref_check) { $ref = $ENV{'HTTP_REFERER'}; $ref =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; if ($ref !~ /$reload/) { &error('¤£¦Xªkªº¦s¨ú',0,"±q¤U¤@­¶¥H¥~ªº­¶­±¦s¨ú¬Ò¤£¨ü²z.
¡÷ $reload"); } } local($path,$img) = @_; if ($img =~ /\/|\.\./) { exit; } if (open(IMAGE,"$path$img")) { @images = ; close(IMAGE); print "Content-type: image/gif\n\n"; print @images; } else { &error("Not Found $img"); } }#image #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub report { local($MAILTO) = @_; if ($MAILTO eq "") { $MAILTO = $mailto; $MAIL_SUBJECT = $mail_subject; $mailto = $bbs_master; } else { $MAIL_SUBJECT = "¦^À³³q³ø"; } ($boundary) = $ENV{'CONTENT_TYPE'} =~ m#multipart/form-data; boundary=(.*)#; if (!$boundary) { return; } $bound = "--" . $boundary; $mail_value = $in{'_value'}; if ($in{'link'} == 2) { # ²¾°£ tag $mail_value =~ s/<//g; $mail_value =~ s/<[^<>]*>//g; $mail_value =~ s//>/g; } else { $mail_value =~ s/"/"/g; $mail_value =~ s/&/&/g; $mail_value =~ s/<//g; } if ($in{'mode'} == 2) { $mail_value =~ s/\n//g; $mail_value .= "\n"; } if ($in{'tm'}) { $EMAIL = ""; } else { $EMAIL = $in{'email'}; } if ($reply_to) { $Reply_To = $reply_to; } elsif ($EMAIL ne '') { $Reply_To = $EMAIL; } else { $Reply_To = $mailto; } if ($in{'_resp'}) { $SUBJECT = "Re: $FILE{'title'}"; } elsif ($in{'_edit'}) { $SUBJECT = "$in{'title'} (¯d¨¥¦^À³)"; } else { $SUBJECT = "$in{'title'}"; } if (open(OUT,"| $sendmail -t")) { #print OUT &jis("X-Processed: $date_now\n"); print OUT "X-Processed: $date_now\n"; print OUT "X-HTTP-REFERER: $ENV{'HTTP_REFERER'}\n"; print OUT "To: $MAILTO\n"; print OUT "From: $mailto\n"; print OUT "Reply-To: $Reply_To\n"; #print OUT &jis("Subject: \[$MAIL_SUBJECT\] $SUBJECT\n"); print OUT "Subject: \[$MAIL_SUBJECT\] $SUBJECT\n"; print OUT "Content-Type: multipart/mixed; boundary=\"$bound\"\n\n"; print OUT 'This is multipart message.' . "\n\n"; print OUT "--$bound\n"; print OUT "Content-Transfer-Encoding: 7bit\n"; print OUT 'Content-Type: text/plain; charset=iso-2022-jp' . "\n\n"; #print OUT &jis("³o«Ê«H¬O¥Ñ¤U¦Cªº³o­Ó¯d¨¥ªOµo°e¥X¨Óªº³q³ø¡C\n"); #print OUT &jis("¯d¨¥ªO¦W¡G$SETUP{'title'}\n"); #print OUT &jis("$reload\n"); print OUT "³o«Ê«H¬O¥Ñ¤U¦Cªº³o­Ó¯d¨¥ªOµo°e¥X¨Óªº³q³ø¡C\n"; print OUT "¯d¨¥ªO¦W¡G$SETUP{'title'}\n"; print OUT "$reload\n"; print OUT "\n"; #if ($in{'_resp'}) { print OUT &jis("¾A¥Î¡Gµ¹¯d¨¥½s¸¹$in{'_resp'}¦^À³³q³ø\n"); } #elsif ($in{'_edit'}) { print OUT &jis("­×¥¿¯d¨¥¡G$in{'_number'} $in{'title'}\n"); } #else { print OUT &jis("·s¼W¯d¨¥¡G$in{'_number'} $in{'title'}\n"); } if ($in{'_resp'}) { print OUT "¾A¥Î¡Gµ¹¯d¨¥½s¸¹$in{'_resp'}¦^À³³q³ø\n"; } elsif ($in{'_edit'}) { print OUT "­×¥¿¯d¨¥¡G$in{'_number'} $in{'title'}\n"; } else { print OUT "·s¼W¯d¨¥¡G$in{'_number'} $in{'title'}\n"; } if ($view_host) { $X_HOST = " - $host_mail"; } else { $X_HOST = ""; } if ($MASTER) { $X_HOST = " - Edit by Super-User"; } #print OUT &jis("¯d¨¥ªÌ¡G$in{'uname'}$X_HOST\n"); #if ($EMAIL) { print OUT &jis("¹q¤l¶l¥ó¦a§}¡G$EMAIL\n"); } #elsif ($in{'tm'}) { print OUT &jis("¹q¤l¶l¥ó¦a§}¡G¥¼¤½¶}¡]³o«Ê³q³øµLªk¦^À³¡^\n"); } #else { print OUT &jis("¹q¤l¶l¥ó¦a§}¡G¥¼µn°O¡]³o«Ê³q³øµLªk¦^À³¡^\n"); } print OUT "¯d¨¥ªÌ¡G$in{'uname'}$X_HOST\n"; if ($EMAIL) { print OUT "¹q¤l¶l¥ó¦a§}¡G$EMAIL\n"; } elsif ($in{'tm'}) { print OUT "¹q¤l¶l¥ó¦a§}¡G¥¼¤½¶}¡]³o«Ê³q³øµLªk¦^À³¡^\n"; } else { print OUT "¹q¤l¶l¥ó¦a§}¡G¥¼µn°O¡]³o«Ê³q³øµLªk¦^À³¡^\n"; } print OUT "\n"; #print OUT &jis("---¥Ñ¦¹¶}©l----------------------------------------------------------\n\n"); #print OUT &jis("$mail_value\n\n"); #print OUT &jis("---¨ì¦¹µ²§ô----------------------------------------------------------\n"); print OUT "---¥Ñ¦¹¶}©l----------------------------------------------------------\n\n"; print OUT "$mail_value\n\n"; print OUT "---¨ì¦¹µ²§ô----------------------------------------------------------\n"; print OUT "\n"; #print OUT &jis("¡°³o«Ê¹q¤l¶l¥óªº¹w³]¦^ÂЦa§}¬° $Reply_To ¡C\n"); #if (@ATTC) { print OUT &jis("¡°³o½g¯d¨¥¦³ªþ¥[¹ÏÀÉ¡C\n"); } print OUT "¡°³o«Ê¹q¤l¶l¥óªº¹w³]¦^ÂЦa§}¬° $Reply_To ¡C\n"; if (@ATTC) { print OUT "¡°³o½g¯d¨¥¦³ªþ¥[¹ÏÀÉ¡C\n"; } print OUT "\n"; #print OUT &jis($sign); print OUT $sign; print OUT "\n"; foreach $img_file (@ATTC) { print OUT "--$bound\n"; print OUT "Content-Type: application/octet-stream; name=\"$img_file\"\n"; print OUT "Content-Transfer-Encoding: X-uuencode\n"; print OUT "Content-Disposition: attachment; filename=\"$img_file\"\n\n"; if (open(UU,"$UUENCODE $base_path$img_file $img_file |")) { @UUFILE = ; close(UU); print OUT @UUFILE; } } print OUT "--$bound\-\-\n"; close(OUT); } }#report #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub mail { undef %FILE; $head_end = 0; if (open(IN,"$base_path$in{'mail'}\.$ext")) { while () { if ($head_end) { $FILE{'value'} .= $_; next; } elsif (/^$/) { $head_end = 1; } s/\n//g; ($key,$val) = split(/\t/); $FILE{$key} .= "\0" if (defined($FILE{$key})); $FILE{$key} .= $val; } close(IN); } else { &error("«H¥óµLªk§ë»¼",0,"¦¬«H¤è±N¯d¨¥§R°£¤F¡AµLªk¨ú±oµn¿ýªº¹q¤l¶l¥ó¦a§}¡C","½Ð±N¦¹µe­±Ãö³¬¡C"); } if ($in{'_action'} eq "") { @VALs = split(/\n/,$FILE{'value'}); foreach $mail_value (@VALs) { if ($FILE{'link'} == 2) { # ²¾°£ tag $mail_value =~ s/<//g; $mail_value =~ s/<[^<>]*>//g; $mail_value =~ s//>/g; } else { $mail_value =~ s/"/"/g; $mail_value =~ s/&/&/g; $mail_value =~ s/<//g; } $QVALUE .= "$FILE{'uname'}> $mail_value\n"; } if ($in{'uname'} eq "") { $in{'uname'} = $COOKIE{'uname'}; } if ($in{'email'} eq "") { $in{'email'} = $COOKIE{'email'}; } $QVALUE .= "\n"; @line_count = split(/\n/,$QVALUE); $line_count = @line_count; $SETUP{'body'} =~ s/ $SETUP{'title'} - µ¹ $FILE{'uname'}ªº¹q¤l¶l¥ó $SETUP{'body'} $center1

µ¹ $FILE{'uname'} ªº¹q¤l¶l¥ó

¦pªG±z§Æ±æ±H«Hµ¹¯d¨¥½g¸¹²Ä$in{'mail'}¸¹ªº¯d¨¥ªÌ $FILE{'uname'} ªº¸Ü¡]¹q¤l¶l¥ó¦a§}¤£¤½¶}¡^¡A
½Ð§Q¥Î¤U¦Cªºªí³æ±H¥X±zªº«H¥ó¡C¦ý¬O¡A§Ú­Ì¨Ã¤£«OÃÒ³o¨Ç°T®§¤@©w¯à°e¨ì¯d¨¥ªÌªº¤â¤W¡C
¦W¦r (¥ô·N)
¹q¤l¶l¥ó (¡°1)
¼ÐÃD (¥ô·N)
¤º¤å EOF if ($QVALUE) { print "¡°½Ð¾¨¥i¯à§R°£¤£¥²­nªº¤Þ¨¥¡C
"; } if ($line_count) { if ($line_count > 30) { $rows = 30; } elsif ($line_count < 10) { $rows = 10; } else { $rows = $line_count; } } else { $rows = 15; } print <<"EOF";
¡÷ ¦pªG§Æ±æ±N©Ò¦³ªº¶µ¥Ø³£¦^¨ì³Ìªì´Áªºª¬ºA¡A½Ð«ö[­«·s¨Ó¹L]¶s
ªþ¥[¹ÏÀÉ ªþ¥[¹ÏÀÉÀɦW (¡°2)
¡@¡@¡@

(¡°1) ¦pªG±z¤£¿é¤J±zªº¹q¤l¶l¥ó¦a§}¡A¹ï¤è´NµLªk¦^«Hµ¹±z¡C
(¡°2) ¦pªG¹ÏÀɪº¸ô®|¤¤¦³ªÅ¥Õ¦r¤¸©Î¥þ«¬¤å¦r¡A¦³¥i¯à·|³B²z¤£¥¿½T¡C


$center2 EOF exit; }#if ($in{'_action'} eq "") ... elsif ($in{'_action'} eq "regist") { foreach (@in) { $image_number = sprintf("%04d%02d%02d%02d%02d%02d",$year +1900,$mon +1,$mday,$hour,$min,$sec); ($fname) = $_ =~ /\bfilename="([^"]*)"/i; ($fname) = $_ =~ /\bfilename=([^\s:;]+)/i unless defined $fname; if ($fname eq '') { next; } ($name) = $_ =~ /\bname="([^"]+)"/i; ($name) = $_ =~ /\bname=([^\s:;]+)/i unless defined $name; ($ctype) = $_ =~ /\s*Content-type:\s*"([^"]+)"/i; ($ctype) = $_ =~ /\s*Content-Type:\s*([^\s:;]+)/i unless defined $ctype; unless ($ctype =~ /^image/i) { &error("ªþ¥[¸ê®Æ¿ù»~",0,"ªþ¥[ªºÀɮפ£¬O¹ÏÀÉ¡C"); } if (length($in{'_attc'}) > $attc_image_max) { 1 while $attc_image_max =~ s/(.*\d)(\d\d\d)/$1,$2/g; &error("ªþ¥[¸ê®Æ¿ù»~",0,"¤@±i¹ÏÀɪº¤j¤p¤W­­¬°$attc_image_max bytes¡C"); } if ($name =~ /attc/) { $fname = reverse("$fname"); ($fname) = split(/\\|\/|\:/,$fname); $fname = reverse("$fname"); ($fname,$ext2) = split(/\./,$fname); if (!open(IMAGE,"> $tmp_dir$image_number\.$ext2")) { &error("³B²z¿ù»~",0,"¹Ï«¬¤¤³~ªº³B²z¥¢±Ñ¡C"); } print IMAGE $in{$name}; close(IMAGE); chmod(0666,"$tmp_dir$image_number\.$ext2"); } push(@ATTC,"$image_number\.$ext2\0$fname\.$ext2"); } ($boundary) = $ENV{'CONTENT_TYPE'} =~ m#multipart/form-data; boundary=(.*)#; if (!$boundary) { &error("Error"); } $bound = "--" . $boundary; $mail_value = $in{'Value'}; $mail_value =~ s/"/"/g; $mail_value =~ s/&/&/g; $mail_value =~ s/<//g; if ($in{'email'} ne '') { $Reply_To = $in{'email'}; } else { $Reply_To = $mailto; } if ($in{'uname'} ne '') { $SENDER = $in{'uname'}; } else { $SENDER = "µL°O¦W"; } if (open(OUT,"| $sendmail -t")) { print OUT &jis("X-Processed: $date_now\n"); print OUT "X-HTTP-REFERER: $ENV{'HTTP_REFERER'}\n"; print OUT "X-HOST_INFO: $host_mail\n"; print OUT "To: $FILE{'email'}\n"; print OUT "From: $mailto\n"; print OUT "Reply-To: $Reply_To\n"; print OUT &jis("Subject: \[FORWARD\] $in{'title'}\n"); print OUT "Content-Type: multipart/mixed; boundary=\"$bound\"\n\n"; print OUT 'This is multipart message.' . "\n\n"; print OUT "--$bound\n"; print OUT "Content-Transfer-Encoding: 7bit\n"; print OUT 'Content-Type: text/plain; charset=iso-2022-jp' . "\n\n"; print OUT &jis("¡mÂà°e¶l¥óªº»¡©ú¡n\n\n"); print OUT &jis("³o«Ê«H¬O¥Ñ¤U¦Cªº³o­Ó¯d¨¥ªOµo°e¥X¨Óªº¡C\n"); print OUT &jis("¯d¨¥ªO¦W¡G$SETUP{'title'}\n"); print OUT &jis("$reload\n"); print OUT "\n"; print OUT &jis("µ¹¯d¨¥½s¸¹$in{'mail'}ªº¯d¨¥ªÌ $FILE{'uname'} ¥ý¥Í/¤p©jªº¶l¥ó\n"); print OUT &jis("¥Ñ $SENDER ±H¥X¡C\n\n"); if ($in{'email'}) { print OUT &jis("µo«HªÌ¡E$SENDER ªº¹q¤l¶l¥ó¦a§}¡G$in{'email'}\n"); } else { print OUT &jis("$SENDERªº¹q¤l¶l¥ó¦a§}¡G¥¼µn°O¡]³o«Ê¹q¤l¶l¥óµLªk¦^À³¡^\n"); } print OUT "\n"; print OUT &jis("---¥Ñ¦¹¶}©l----------------------------------------------------------\n\n"); print OUT &jis("$mail_value\n\n"); print OUT &jis("---¨ì¦¹µ²§ô----------------------------------------------------------\n"); print OUT "\n"; print OUT &jis("¡°³o«Ê¹q¤l¶l¥óªº¹w³]¦^ÂЦa§}¬° $Reply_To ¡C\n"); if (@ATTC) { print OUT &jis("¡°³o½g¯d¨¥¦³ªþ¥[¹ÏÀÉ¡C\n"); } print OUT "\n"; print OUT &jis($sign); print OUT "\n"; foreach $img_file (@ATTC) { ($img_file,$fname) = split(/\0/,$img_file); print OUT "--$bound\n"; print OUT "Content-Type: application/octet-stream; name=\"$fname\"\n"; print OUT "Content-Transfer-Encoding: X-uuencode\n"; print OUT "Content-Disposition: attachment; filename=\"$fname\"\n\n"; if (open(UU,"$UUENCODE $tmp_dir$img_file $img_file |")) { @UUFILE = ; close(UU); print OUT @UUFILE; } unlink ("$tmp_dir$img_file"); } print OUT "--$bound\-\-\n"; close(OUT); }#if (open(OUT,"| $sendmail -t")) ... print "Content-type: text/html\n\n"; print <<"EOF"; $SETUP{'title'} - µ¹ $FILE{'uname'} ªº¹q¤l¶l¥ó $SETUP{'body'} $center1


«H¥ó¤w±H¥X

¤è¤~±z¿é¤Jªº¤º®e¤w¸g¶Ç°eµ¹ $FILE{'uname'} ¤F¡C
½Ð±N¥»µøµ¡Ãö³¬¡C


$center2 EOF exit; } else { &error("Error"); } }#mail #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub copyright { @array = ( "47","49","46","38","39","61","3c","00","1f","00","b3","03","00","00","00","00","7b","7b","bd","84", "84","42","c6","c6","c6","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff", "ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff","ff", "ff","21","f9","04","01","00","00","03","00","2c","00","00","00","00","3c","00","1f","00","40","04", "ff","70","c8","49","ab","bd","38","eb","7d","09","01","1e","20","82","1f","59","86","a2","77","a2", "04","57","a1","e4","08","cf","65","9c","0a","78","ae","ef","b9","a7","b7","30","1b","68","24","ac", "d1","08","bd","c0","00","49","08","28","03","c8","5d","d3","65","a9","81","96","46","95","76","eb", "91","6c","a9","18","6b","28","48","2c","9b","cd","2d","f0","f2","ac","62","b7","89","e3","5f","34", "ed","95","2a","37","01","9e","7e","cf","e7","3b","f5","77","60","62","5e","62","32","1a","46","6a", "19","41","64","85","67","43","86","89","55","2b","32","59","29","2c","34","96","89","5c","9b","9c", "26","5b","00","50","9c","9c","4e","5a","81","58","96","95","26","32","94","a5","51","02","4d","a4", "4c","ae","af","73","a6","6b","29","36","46","42","9e","32","50","7b","74","58","3f","92","a2","c4", "9d","be","3d","5a","38","3e","af","c7","ca","b6","91","d0","d1","6a","5c","13","c4","87","5a","d2", "2f","70","5e","70","88","8a","90","d9","dc","ac","dd","2b","27","ac","27","e1","d5","b8","8f","e5", "a8","94","ee","24","e9","b7","98","96","ef","f5","f7","57","e1","f4","8b","f6","aa","45","c0","d1", "8a","09","1c","a8","c9","d1","23","37","56","50","f5","d1","b3","4c","99","36","78","47","d6","f1", "52","21","67","59","43","5a","73","a6","a8","43","43","06","9e","bd","59","4d","3c","98","38","21", "c5","43","23","85","4b","a9","de","f0","82","03","e2","d7","49","39","1d","b2","e8","f2","88","2a", "4b","45","66","13","9a","39","7c","c8","c6","60","47","15","cd","d2","84","62","96","51","18","9e", "81","c4","16","ca","d1","89","33","43","28","a4","50","47","3d","2d","25","21","02","00","3b"); print "Content-type: image/gif\n\n"; foreach (@array) { $data = pack('C*',hex($_)); print $data; } exit; }#copyright #--------------------------------------------------------------------------- # #--------------------------------------------------------------------------- sub error { local (@msg) = @_; local ($i); print "Content-type: text/html\n\n"; print <<"EOF"; $SETUP{'title'} $SETUP{'body'} $center1

$msg[0]

EOF print "
    \n"; foreach $i (2 .. $#msg) { print "
  • $msg[$i]\n"; } print "
$center2 EOF exit; }#error

\n"; if ($msg[1] =~ /1/) { print <<"EOF"; [¦^¨ì«e¤@­Óµe­±] EOF } if ($msg[1] =~ /2/) { print <<"EOF"; [¦^¨ì¯d¨¥ªO] EOF } print <<"EOF";