#!/usr/local/bin/perl
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++ [ tackynotesp Ver0.723 ]
#+++ ・・・・・>>> All Created by Tacky
#+++ ・・・・・>>> Copyright (c) 2001.10 Tacky's Room. All rights reserved....
#+++ Email >>> tacky2@ops.dti.ne.jp
#+++ Homepage >>> http://tackysroom.com/
#+++
#+++ 設置方法構成(具体例)
#+++
#+++ public_html(ホームページディレクトリ)
#+++ |-- cgi-bin(任意のディレクトリ)
#+++ |-- jcode.pl (755)…(日本語ライブラリ)
#+++ |-- tackynotesp.cgi (755)…(スクリプト本体)
#+++ |-- notelog (777)…(ログ保存用フォルダ)
#+++ | |-- 200110.txt …CGI内部で自動作成します
#+++ | |-- 200111.txt …CGI内部で自動作成します
#+++ |-- noteimg (777)…(画像保存用フォルダ)
#+++ | |-- xxxx.gif …(画像)…ファイル名はアップロードするファイル名そのままです。
#+++ |-- icon (777)…(アイコン用フォルダ)
#+++ | |-- xxxx.gif …(アイコン)
#+++ |-- logo_back.gif (1ヶ月戻るアイコン)
#+++ |-- logo_back.gif (1ヶ月進むアイコン)
#+++ |-- spacer.gif (ダミー透明画像)
#+++
#+++ ■画像アップロードはPerl5以上が必要です。多分。(^^;;; hi-hoは確かダメ。
#+++
#+++ ■( )内はパーミッッションの値です。
#+++
#+++ ■tackynotesp.cgi :Perlのパス、その他の項目を修正、テキストモードでアップロード。
#+++
#+++ >>> Update-History...
#+++
#+++ 2004.03.08(Ver0.723) >> タグロジックに対するバグ修正。
#+++ 2004.03.06(Ver0.722) >> タグを許可するロジックに対するバグ修正。
#+++ 2004.03.03(Ver0.721) >> 不具合対応
#+++ 2004.02.07(Ver0.72) >> ようやく海の日・敬老の日対応&セキュリティ強化
#+++ 2002.06.30(Ver0.71)#
#+++ ・レスを修正した時に文字色が反映されなかったのを修正。
#+++ ・状況によってレス修正画面にタイトルやアイコン設定が現れるのを修正。
#+++ ・lock処理がダブっていたのを修正。
#+++
#+++ 2002.04.26(Ver0.7) スーパーサポーターの「ふくちゃん」に不具合対応及び改造をして頂いちゃいました。(^^ゞ
#+++ ・【古いバージョンとはログの互換性がありません。ログコンバートスクリプトをダウンロードしてね。】
#+++ ・週間表示の場合の不具合を修正
#+++ ・日記書き込みのコメント文字色の選択を可能とする($colorc部分、以前のものとはログの互換性無し)
#+++ ・$tbgcolorを有効にする
#+++ ・アイコン一覧での不要なものを表示しないよう修正
#+++ ・リンクを [ ] で囲む(^^;)
#+++ ・カレンダー部分の曜日部分の背景色を指定
#+++ ・カレンダー部分の曜日部分の文字色を日付の色に合わせる
#+++ 2001.10.27(Ver0.5) >> ・β版リリース
#+++
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
require './jcode.pl'; #日本語コード変換
$url = "schedule.cgi"; #戻り先URL
$script = "./schedule.cgi"; #このCGIの名前を指定
$titlename = ''; #タイトルを指定
$titlelogo = '
'; #タイトル画像を指定。src=の後ろに画像のパスを指定してね。(使用しない場合は、''で良い)
#例:$titlelogo = '';
$bgcolor = '#FFFFFF'; #背景色を指定
$backpicture = ''; #背景画像を指定(使用しない場合は、''で良い)
$tbgcolor = '#FFFFFF'; #入力フォームの背景色を指定
$ftextcolor = '#666666'; #入力フォームの文字色を指定
$calcolor = '#FFFFFF'; #カレンダー部分のセル背景色を指定
$calyoubicolor = '#FFFFFF' ; #カレンダー部分の曜日部分の背景色を指定
$calbordercolor = '#666666' ; #カレンダー部分の枠線の色を指定
$msg_cellbgcolor = '#FFFFFF'; #日記部分の本文セル背景色を指定
$msg_bordercolor2 = '#666666' ; #日記部分の日付枠線の色を指定
$msg_cellbgcolor2 = '#666666'; #日記部分の日付セル背景色を指定
$msg_celltxcolor2 = '#FFFFFF'; #日記部分の日付セル文字色を指定
#下記の背景色指定をした場合に、上記の$msg_cellbgcolor2やtxcolor2の色指定ではなくって、
#指定した背景色とそれに対応した文字色と同じ色で「日付表示部分」を表示する場合は1。上記の指定にする場合は0。
#・・・って指定細かすぎ?だって・・・こだわりたいのだー!(笑)<と無駄なソースをばんばん埋め込むσ(^_^)。
$awaseru = 1 ;
$colb_use = 0; #(0:色指定する 1:色指定しない)
#$colb_useが1(指定しない)場合は、下記の1番目の色を採用します。
#入力フォーム・背景色の指定
@COLORS_B = ('#666666','#B1D23E','#E7DE38','#81BEC9','#F1A287','#E1BAE2','#FBF7A6','#E1E1E1','#D0B880','#EF653D');
#背景色に対してのタイトルやレスフォーム部分の文字色もやっぱり変更出来ないとだめだね。っちゅー訳でタイトルの文字色。
#$colb_useが1(指定しない)場合は、下記の@COLORS_Fの1番目の色を採用します。
@COLORS_F = ('#FFFFFF','#000000','#003399','#990000','#669900','#cc3399','#ff6633','#cc0000','#804000','#666666'); #タイトル色
#コメントの文字色
@COLORS_C = ('#666666','#008000','#ff4500','#4169E1','#ff6666','#666666','#999900','#ff9999','#cc99cc','#990000');
$password = 'kaneko'; #メンテナンス用パスワード(管理者用)
#<<<祝日の設定(成人の日・体育の日・春分の日・秋分の日は除きます)
@holiday = ('0101','0211','0429','0503','0504','0505','1103','1123','1223');
#※成人の日・海の日・敬老の日・体育の日・春分の日・秋分の日は除いて下さい
#◆<<< 指定年月のログを、一度に1ヶ月分表示させるか?(yes,no,week)。
#◆<<< noの場合は一日ずつ表示(一日毎にクリックするとログを表示するパターン)
#◆<<< weekの場合は週単位で表示(1ヶ月分表示する事も可能です)
$monthview = 'yes';
#◆<<< 上記の$monthviewが'no'以外の場合、
#◆<<< ログを昇順(上から1〜31日)に表示するなら'1',降順(上から31〜1日)の場合'2'
$viewsort = 1;
#◆<<< カレンダー部分(ひとマス)のheight,width(四角形なので、設定値も1個だけね)40以上だとちょっと縦長になるけど我慢。
$calsize = 35 ; #Pixel
#◆<<< ↓お好きなようにどうぞ。例: ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')
@week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
$col = 50 ; #日記を書く欄の横桁数(80だと日本語で40文字です)
$row = 15 ; #日記を書く欄の行数
#==========================================================================================
#>>>カレンダー部分に『日記を書いた日』である事を認識させる設定
#==========================================================================================
# $icon_gif[0]が設定されている場合は、$icon_gif[n]を優先的に表示させます。
# $icon_gif[0]が設定されていない場合(削除してもいいけど)は
# $img_gifが設定されていれば$img_gifの画像を表示、未設定の場合は■を表示します。
#1個のアイコンだけを使用する場合
$img_gif = ''; #"メモを書いた日"に表示する画像を指定。(指定しないと■が表示されます)
#複数のアイコンを使用する場合。たくさん設定した場合、$icon[4]...$icon[9]のようにただ増やしていけばいいです。
$icon[0]='./live.gif' ; $iconnm[0]='ライブ';
$icon[1]='./other.gif' ;$iconnm[1]='その他の予定';
$icon[2]='./media.gif' ; $iconnm[2]='テレビ・ラジオ等の放送など';
$icon[3]='./star.gif' ; $iconnm[3]='チケット等の発売日';
$icon_w = 0; #アイコン横サイズ(全アイコンが同じサイズの場合。異なる場合は0にしてね)
$icon_h = 13; #アイコン縦サイズ(全アイコンが同じサイズの場合。異なる場合は0にしてね)
$disp_icon = 1 ; #日記を表示した際に日記の横にアイコンも表示する?(0:no 1:yes)
#==================================================================================================================
#>>>日記表示部に表示するアイコンの設定 $disp_icon = 1(yes)の設定の場合のみ有効。noの場合は無視していいです。
#==================================================================================================================
$onaji = 1; #カレンダーに表示するアイコンと同じアイコンを使う?(0:no 1:yes)
#アイコン・アイコン名称・アイコンの幅・アイコンの高さ。 幅と高さがわからない場合は、$icon2_w[0]=0;のように0を指定してね。
#アイコンを追加する場合は、$icon2[4]...$icon2[9]のようにただ増やしていけばいいです。
$icon2[0] = './ball.gif' ; $iconnm2[0] = '気分はボール' ;
$icon2_w[0] = 32 ; $icon2_h[0] = 32 ;
$icon2[1] = './corgi.gif' ; $iconnm2[1] = '気分はコーギー' ;
$icon2_w[1] = 32 ; $icon2_h[1] = 32 ;
$icon2[2] = './fire.gif' ; $iconnm2[2] = '気分は炎' ;
$icon2_w[2] = 32 ; $icon2_h[2] = 32 ;
$icon2[3] = './beer.gif' ; $iconnm2[3] = '気分はビール' ;
$icon2_w[3] = 32 ; $icon2_h[3] = 32 ;
$icon2[4] = './denchi.gif' ; $iconnm2[4] = '気分は電池' ;
$icon2_w[4] = 32 ; $icon2_h[4] = 32 ;
$icon2[5] = './rainbow.gif' ; $iconnm2[5] = '気分は虹' ;
$icon2_w[5] = 32 ; $icon2_h[5] = 32 ;
$icon2[6] = './space.gif' ; $iconnm2[6] = '気分は宇宙' ;
$icon2_w[6] = 32 ; $icon2_h[6] = 32 ;
$icon2[7] = './tv.gif' ; $iconnm2[7] = '気分はテレビ' ;
$icon2_w[7] = 32 ; $icon2_h[7] = 32 ;
$icon2[8] = './cow.gif' ; $iconnm2[8] = '気分は牛' ;
$icon2_w[8] = 32 ; $icon2_h[8] = 32 ;
$icon2[9] = './hatena.gif' ; $iconnm2[9] = '気分ははてな?' ;
$icon2_w[9] = 32 ; $icon2_h[9] = 32 ;
$icon2[10] = './mail.gif' ; $iconnm2[10] = '気分はメール' ;
$icon2_w[10] = 32 ; $icon2_h[10] = 32 ;
$icon2[11] = './castela.gif' ; $iconnm2[11] = '気分はカステラ' ;
$icon2_w[11] = 32 ; $icon2_h[11] = 32 ;
#アイコン一覧を表示する際、1行にアイコンを何個表示します?
$icon_line = 2 ; #←の場合、3個表示したら改行するって事です。
$tcolor = "#666666"; # 文字色
$linkcolor = "#666666"; # リンク色(未読リンク)
$vlinkcolor = "#666666"; # リンク色(既読リンク)
$alinkcolor = "#666666"; # リンク色(押した時)
$hovercolor = '#FF6600'; #リンクをポイントした際のアンダーライン色(IEのみ) u000301
$pt = '9pt'; #全体のフォントサイズ(pt指定以外何があるのか、僕知らない。(^^ゞ)
$back_gif = './logo_back.gif'; #「1ヶ月戻る」用画像(使用しない場合は'')
$next_gif = './logo_next.gif'; #「1ヶ月進む」用画像(使用しない場合は'')
$setyear_b = 1; #カレンダーを年月指定で移動する場合、「年」は過去何年まで表示します?(1の場合、前年まで表示)
$setyear_a = 1; #カレンダーを年月指定で移動する場合、「年」は未来何年まで表示します?(5の場合、5年先まで表示)
$tbl_sz = '400' ; #日記表示部のテーブル横幅(ピクセル又は%)
$color_nml = '#666666'; #カレンダー・「平日」の文字色
$color_sat = '#6666FF'; #カレンダー・「土曜日」の文字色
$color_sun = '#FF6666'; #カレンダー・「日曜日」の文字色
$color_hol = '#FF6666'; #カレンダー・「祝日」の文字色
$color_today = '#CCFF00'; #カレンダー・「今日」の背景色
$resflg = 0 ; #レス機能を使用する?(0:しない 1:する)
#投稿時のパスワードをcrypt関数を使用する(暗号化)
#crypt関数が利用出来ない場合もありますので、投稿時にエラーになる場合は、「0:使用しない」にして下さいね。
$ango = 1 ; #0:使用しない 1:使用する (推奨:1:使用する)
#色の指定(1行レス投稿時の文字色)。色を増やしたい場合は、'#336699','#003366'のようにどんどん増やしていいですよ。
@COLORS = ('#000000','#008000','#ff4500','#4169E1','#ff6666','#666666','#999900','#ff9999','#cc99cc','#990000');
@COLORSNM = ('Black','Green','Orange','Blue','Red','Gray','Gold','Pink','Purple','Brown');
#1行レス投稿フォームでの返信ボタンに表示する文字
$resword = '感想';
$titleflg = 1 ; #日記に「タイトル」が必要?(0:不要 1:必要)
#掲示板荒らし対策。排除したいプロバのアドレスを設定して下さい。
# "xxx?.com"とした場合、"xxx1.com","xxx2.com"等、「?」の部分が文字列1つと判断します
# "xxx*.com"とした場合、"xxx1.com","xxx12345.com等、「*」の部分が0個以上の文字列と判断します。
@DANGER_LIST=("xxx.com","yyy.com","zzz*.or.jp");
#掲示板荒らし対策その2。メッセージ最大文字数を指定。特に設定しない場合は、''として下さい。3000は全角1500文字です。
$Maxword = '3000' ;
#レス投稿フォームのコメント入力欄は「1行テキスト」?「複数行テキスト」?
$res_text = 0 ; #0:1行テキスト 1:複数行テキスト(テキストエリア)
$sz = 60 ; #1行レス場合、1行の文字数は?
$c_sz = 40 ; #複数行テキストの場合、1行の文字数
$r_sz = 3 ; #複数行テキストの場合、行数
$minnade = 0; #管理人以外も日記を書けるようにする?(0:しない 1:する)
$minnade_gif = ''; #$minnade=1の場合に表示する「新規投稿用アイコン画像」を指定。画像を使用しない場合は''でいいです。その場合「新規投稿」と表示されます
$zurazura = 0 ; #1日に複数回(人)日記を書いた場合、アイコンを1個しか表示しないようにする?(0:しない 1:する)
$kiero = 1; #カレンダーを表示しますか?(0:no 1:yes)…同スクリプトに直接アクセスした際に、カレンダーを表示しないで、当月の日記部分のみ表示する場合は1となります i001109
#=============================================================================================================================================================================================
#フォームCSS設定 ※使用しない場合は、$css_style = "";とし、そこから2行(先頭がEOMの行までを)を削除して下さい。
$css_style = <<"EOM";
STYLE=font-size:$pt;color:#666666;background-color:#FFFFFF;border-style:solid;border-color:#666666;border-width:1;
EOM
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Sendmailが使える方のみ以下の項目を設定して下さい。(Ver0.85からの機能)
# ※Sendmailとは?
# メールソフトを立ち上げないで、指定した相手にメールを送る事が出来る機能です。
# 自分のプロバイダーがSendmailに対応しているか、パスはどこ?等は、各自のプロバイダー
# のHPでご確認して下さいね。
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#投稿時に管理者にメール送信する場合、sendmailのパスを指定
$sendmail = "";
#メール送信先アドレス。(管理者のアドレス)…「@」の前には必ず「¥」を付けてね。
$smail_address = "xxxxxx\@xxx.xx.jp";
$hiho = 0 ; #プロバイダーが「hi-ho」の人のみ「1」にして下さい。 ※Sendmail使う場合
$sinchaku = 0 ; #レス機能有にした場合、最新レスのあった日記を表示します。0の場合は表示しない、0以外は指定した数だけ表示します。
$sinchaku2 = 0 ; #最新投稿を表示します。0の場合は表示しない、0以外は指定した数だけ表示します。
$omakase = 3 ; #日記表示部分の「日付」が表示されてる所と、「本文」が表示されている
#テーブルの間にある隙間をどれくらいにします?数字でよろしく。
#ログ表示の際、「日記の日付」・「投稿日付」の表示方法設定
# ○:表示する ×:表示しない
# $timedisp=1:「日記の日付:○」・「投稿日付:○」
# $timedisp=2:「日記の日付:○」・「投稿日付:×」
# $timedisp=3:「日記の日付:×」・「投稿日付:○」
# $timedisp=4:「日記の日付:×」・「投稿日付:×」
$timedisp = 2 ;
$method = 'POST'; #METHODの指定(POST又はGET)
$tag = 0 ; #管理人以外もタグ許可しますか?(0:no 1:yes)
#<<< ログ設定…指定したディレクトリ($olddir)直下に"200101.txt".."200112.txt"(上4桁は年月)のように作成します
#<<< ※CGIと同じ階層には、設置出来ません。必ずログ保存用フォルダを作成してください。
#<<< ※月単位に日記を保存します。
$logdir = './notelog/' ; #過去ログ作成用ディレクトリを指定。最後に必ず「/」を付けてね。
$target = '_blank' ; #[HOME]をクリックした時のターゲット指定
$bdcolor = '#666666'; #所々に使っております横線(水平線)の色(IEだけ色変わる)
$bdcolor2 = '#666666'; #レス有りの場合、本文とレス文の間の横線(水平線)の色(IEだけ色変わる)
$dlsw = 0 ; #ログをダウンロード可能にする場合(Winのみ)は「1」を指定。
$simaru = '' ; #日記本文のテーブルに枠線要らない?要るなら線の色を。要らないなら''。
$set_font = 'Arial, Helvetica, sans-serif'; #カレンダーの数字部分だけフォント指定出来ます。フォント名を「,」で区切ってズラズラと
$findsw = 0 ; #「検索」を使用します?(0:使用しない 1:使用する)
$mojisz = 2 ; #日記表示部分のフォントサイズ
$spacer_gif = './spacer.gif'; #ダミー透過画像。画像はそのまま使用してね。パスだけ修正。
#▼タイトルの下に何か表示したいメッセージがあれば"EOM";の次の行からEOMの前の行にメッセージどうぞ。
# 表示しない場合は、"EOM";とEOMの間の行を削除してね。
$HEAD_COMMENT = <<"EOM";
金子マリのスケジュールです
ライブやイベントのある日にはアイコンが表\示されます
ライブ開催日テレビ等の放映日
その他のイベント開催日チケットの発売日
EOM
#★【画像アップロードを使わない場合は、「$UpFolder = "";」にしておいて他の画像アップに関する設定項目は無視していいですよ】
# アップロードディレクトリのパス → パスの最後は / を付けてください。
#※hi-hoの方は、$UpFolder = "$ENV{'HOME'}/html/画像フォルダ名/";として下さいね。
#※Niftyの方は、$UpFoler = "/homepage/画像フォルダ名/";でたぶん良いかと・・・(^^;;;
$UpFolder = "./noteimg/";
# アップロードディレクトリのURLパス → パスの最後は / を付けてください。
#※hi-hoの方は、$UpUrl = "../../../ユーザー名/画像フォルダ名/";
#※Niftyの方は、$UpUrl = "http://homepage?.nifty.com/ユーザー名/画像フォルダ名/";でたぶん良いかと・・・(^^;;;
#※画像がCGIフォルダに設置可能なサーバーをご使用の方は上記$UpFolderと同じでいいと思いますわ。
$UpUrl = "./noteimg/";
# 投稿受理最大サイズ (bytes)
# → 例 : 102400 = 100KB
$maxdatasz = '102400';
# 画像ファイルの最大表示サイズ(Pixel)。サイズを超えた場合は画像縮小表示。
$MaxWidth = 300; #横幅 ※必ず指定して下さい。どうしても縮小したくない方は666666とかにしてね。
$MaxHeight = 200; #縦幅 ※必ず指定して下さい。どうしても縮小したくない方は666666とかにしてね。
$point = 1 ; #画像の表示位置(1:Left 2:Center 3:Right)
$maware = 1 ; #画像に対して文章の回り込みをしますか?しない場合は1行下から文章が表示されます。
$sizeflg = 0 ; #画像の下にファイルサイズを表示しますか?(0:no 1:yes) ※$maware=1の場合はファイルサイズ表示せずimgタグのALTで表示されます
#ログ表示部の画像をクリックし、通常サイズの画像を表示する場合、
#1:画像の大きさのウインドウを開き画像を表示。
#2:新規ウインドウを開き画像を表示。※広告バナーが表示されるサーバーの方はこちらの設定ですね。
$imglink = 1 ;
#初期表示は一日前の日記を表示する?
$initdisp = 0 ; #0:当日 1:前日
#アップロード可能とするファイル形式。 ※追加可。
@FMT = ("gif","jpg","jpeg","png");
@errtag = ('table','meta','form','!--','embed','html','body','tr','td','th','a'); #デンジャラ〜なタグ
#スクロールバーの色変更。よくわからない方は、"EOM"の次の行から先頭がEOMの行の間を削除してね。
$scrollbar = <<"EOM";
EOM
#◆◆◆↓セキュリティ◆◆◆
$postchk = 1; #投稿時・メンテナンス時のMethodをPOST限定にする場合は1。以外は0。
$urlchk = ''; #ここで指定されたアドレス(CGIの設置アドレスを記入)以外から投稿があった場合をエラーとします。設定しない場合は''
#◆◆◆↑セキュリティ◆◆◆
#スクロールバーの色変更。よくわからない方は、"EOM"の次の行から先頭がEOMの行の間を削除してね。
$scrollbar = <<"EOM";
EOM
$autolink = 1 ; #「http〜」を入力すると「こちら」と自動リンクするのを使う?(0:no 1:yes)
#=============================================================================================================================================================================================
#<<< ここから下はいじらない方が身のためです。
###############################################################################
#### Main Process START #####################################################
###############################################################################
#<<<システム日時・時刻取得
@cdays = (0,31,28,31,30,31,30,31,31,30,31,30,31);
$ENV{'TZ'} = "JST-9";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$syear = sprintf("%02d",$year + 1900);$smonth = sprintf("%02d",$mon + 1);$sday = sprintf("%02d",$mday);
$week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday];
$hour = sprintf("%02d",$hour);$min = sprintf("%02d",$min);
$sysdate = "$syear/$smonth/$sday($week) $hour:$min";
if ( $initdisp == 1 ) {
$iday = time + 86400 * (-1);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($iday);
$syear = sprintf("%02d",$year + 1900);$smonth = sprintf("%02d",$mon + 1);$sday = sprintf("%02d",$mday);
}
if ( $UpFolder && !(-e $UpFolder) ) { &error("画像アップロード先のフォルダが存在していません。"); }
&cookieget; #<<\n";
print "\n";
print "";
print "