#!/usr/local/bin/perl ############################################################################## # shiromuku(u2)LINKS version 1.32 # Created 06/18/2003 # Copyright 2003 Shiromuku # Available at http://www.t-okada.com/cgi/ ############################################################################### # COPYRIGHT NOTICE (著作権の告示) # Copyright 2003 Shiromuku All Rights Reserved. # This script can be used and modified free of charge as long as you don't change this header or any of the parts that give me credit for writing this. (このスクリプトは無償で使用または改変できます。ただしこの著作権の告知と上記のコメント、及びCGIにより生成されるHTML表示下部にある著作権表示部は変えないで下さい。) # By using this script you agree to indemnify me from any liability that might arise from its use. In simple English, if this script somehow makes your computer run amuck and kill the pope, it's not my fault.(このスクリプトを使用することにより、使用者はその使用によって起こる可能性のあるいかなる事柄に対する責務についても、私Shiromukuに免責の保証を与えることに同意したものとします。) # Redistributing and selling the code for this program without prior written consent is expressly forbidden.(前もって書面での承諾を得ることなくこのプログラムのコードを再配布したり売ったりすることは 明確に禁じられています。) ####################### require './su2_links_lib.cgi'; ####################### use strict; my $gl = &get_globals("su2_links_gl.cgi"); $gl->{version} = "version 1.32"; my ($form,$key); my $config = &open_config ($gl); if ($ENV{'CONTENT_LENGTH'} || $ENV{'QUERY_STRING'}) { $form = &parse_data($gl,$config); } my %HoD = (); @HoD{"gl", "config", "form"} = ($gl, $config, $form); #foreach $key (keys (%{$HoD{config}})) { #if ($key =~ /^c2_/) {$HoD{config}{$key} =~ s/
/\n/g;} #} if ($form->{action} eq "admin_enter") { if ($config->{check_referer} == 1) {&check_referer($gl,$config);} &return_admin_enter (\%HoD); } elsif ($form->{action} eq "admin_enter1") { if ($config->{check_referer} == 1) {&check_referer($gl,$config);} &return_admin_enter1(\%HoD); } elsif (($form->{action} eq "show_form") && $config->{allow_submit}) { if ($config->{check_referer} == 1) {&check_referer($gl,$config);} &show_form(\%HoD); } elsif (($form->{action} eq "show_form1") && $config->{allow_submit}) { if ($config->{check_referer} == 1) {&check_referer($gl,$config);} &show_form(\%HoD); } elsif ($form->{action} eq "show_search") { if ($config->{check_referer} == 1) {&check_referer($gl,$config);} &show_search (\%HoD); } elsif ($form->{action} eq "showlasts") { if ($config->{check_referer} == 1) {&check_referer($gl,$config);} &showlasts (\%HoD); } elsif ($form->{action} eq "showlasts1") {&showlasts1 (\%HoD);} else {&error("エラーです。\n",$HoD{config});} exit (0) ; ############################ sub parse_data { my ($gl,$config) = @_; my ($buffer, @pairs, $pair, $name, %form, $value); $buffer = $ENV{'QUERY_STRING'}; @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; if ($value =~ /\W/){ &error("エラーです。\n",$config); } $form{$name} = $value; } return \%form; } ############################ #新規登録 sub show_form { my $HoD = shift; my$cookie; if ($HoD->{form}{action} eq "show_form1") { my $cat_data = &get_catname ($HoD->{form}{cat}, $HoD); my$cat_name_j = $cat_data->[2]; $HoD->{config}{c1_d_title_color} = "【$cat_name_j】新規投稿"; $HoD->{config}{c2_title} = "

【$cat_name_j】新規投稿

"; } else { $HoD->{config}{c1_d_title_color} = "新規投稿"; $HoD->{config}{c2_title} = "

新規投稿

"; } $HoD->{config}{c2_form_message} =~ s/
//g; my $file = &file_open("$HoD->{gl}{basedir}/$HoD->{gl}{catfile}"); my%boardname = split(/\,/,$HoD->{gl}{boardname}); if ($HoD->{gl}{usepasscookie} == 1) {$cookie = &get_cookie (\%boardname);} print "Content-type: text/html\n\n"; &head_html(\*STDOUT,$HoD); print "$HoD->{config}{c2_title}\n"; print "$HoD->{config}{c2_form_message}\n"; print "
\n"; print "
{gl}{cgi_r}\">\n"; print "\n"; if ($HoD->{form}{action} eq "show_form1") { print "{form}{cat}\">\n"; } &add_html($HoD); print "
\n"; print "
\n"; print "
PASS{pass}\">修正・削除用(半角英数字8文字まで)

\n"; print "
\n"; print "
\n"; &foot_html (\*STDOUT, $HoD); } ############################ #検索 sub show_search { my $HoD = shift; $HoD->{config}{c1_d_title_color} = "記事検索"; print "Content-type: text/html\n\n"; &head_html(\*STDOUT,$HoD); print "

記事検索

\n"; print "
{config}{text_color}\">
\n"; print "
\n"; &search_html(\*STDOUT,$HoD); print "
\n"; &foot_html (\*STDOUT, $HoD); } ############################ #過去の記事を見る部分のHTML sub showlasts1 { my $HoD = shift; my$txtnum = &get_number ("$HoD->{form}{cat}$HoD->{gl}{txtnumfile}", '1', $HoD); if (-e "$HoD->{gl}{basedir}/$HoD->{form}{cat}_$txtnum\.cgi") { $HoD->{config}{c1_d_title_color} = "過去ログ"; print "Content-type: text/html\n\n"; &head_html(\*STDOUT,$HoD); print "
\n"; print "
\n"; #if ($HoD->{config}{img_back_url}) { #print "[{config}{img_back_url}\" TARGET=_top>HOME]\n"; #} print "[{gl}{cgi}? TARGET=\"$HoD->{config}{target1}\" style=\"text-decoration:none\">TOP]\n"; #print "[{gl}{cgi}? TARGET=\"_parent\" style=\"text-decoration:none\">TOP]\n"; #print "[{gl}{cgi_u}?action=show_form\" TARGET=\"$HoD->{config}{target1}\" >新規投稿]\n"; #print "[{gl}{cgi_u}?action=show_search&cat=$HoD->{form}{cat}\" TARGET=\"main\" >記事検索]\n"; print "[{gl}{cgi}?action=make_html&cat=$HoD->{form}{cat}&txtnumber=log\" TARGET=\"_parent\" style=\"text-decoration:none\">BACK]\n"; while (1<=$txtnum) { print "{gl}{cgi}?action=make_html&cat=$HoD->{form}{cat}&txtnumber=$txtnum\" TARGET=\"bottom\" style=\"text-decoration:none\">-$txtnum-\n"; $txtnum = $txtnum-1; } print "
\n"; print "\n"; } else { &error("エラーです。\n",$HoD->{config}); } } ############################ #過去の記事を見る部分のHTML sub showlasts { my $HoD = shift; my$txtnum = &get_number ("$HoD->{form}{cat}$HoD->{gl}{txtnumfile}", '1', $HoD); if (-e "$HoD->{gl}{basedir}/$HoD->{form}{cat}_$txtnum\.cgi") { print "Content-type: text/html\n\n"; print "\n"; print "\n"; print "\n"; #print "\n"; print "$HoD->{config}{c1_d_title_color}\n"; print "\n"; print "{gl}{cgi_u}?action=showlasts1&cat=$HoD->{form}{cat}\" name=\"diarys\">\n"; print "{gl}{cgi}?action=make_html&cat=$HoD->{form}{cat}&txtnumber=$txtnum\" name=\"bottom\">\n"; print "<BODY><P>このページをご覧いただくにはフレーム対応のブラウザが必要です。</P></BODY>\n"; print "\n"; print "\n"; } else { &error("エラーです。\n",$HoD->{config}); } }