#!/usr/bin/perl
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++ [ tackynotespsp Ver0.6 ] 2002.02.20 UPDATE!!
#+++ ・・・・・>>> 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 …(画像)…ファイル名はアップロードするファイル名そのままです。
#+++
#+++ ■画像アップロードはPerl5以上が必要です。多分。(^^;;; hi-hoは確かダメ。
#+++
#+++ ■( )内はパーミッッションの値です。
#+++
#+++ ■tackynotespsp.cgi :Perlのパス、その他の項目を修正、テキストモードでアップロード。
#+++
#+++ >>> Update-History...
#+++
#+++ 2002.02.20(Ver0.6) >>
#+++ ・いい加減に「β版」はやめる事にしました。(^^;;;
#+++ ・表示方法設定項目($monthview)に'week'を指定すると『週単位』+『1ヶ月分表示』を出来るようにしました
#+++ ・年月移動した際に「ログをダウンロード」ボタンが消える不具合修正
#+++ ・日記を書く時の「文字色」が「レス文字色」を元に表示していた不具合修正
#+++ ・半角カンマを全角カンマに強制置換するのをやめました。
#+++ ・タイトル及び本文に「+(プラス)」を入力するとスペースになる不具合修正
#+++ 2001.11.19(Ver0.5d) >>
#+++ ・入力フォームにおいて背景色を指定し、ログ表示部の背景色を変更出来るようにしました。
#+++ ・入力フォームの文字色指定をSELECTボックスからRADIOボタンに変更しちゃいました。(^^;;;
#+++ ・画像表示する際の文章回り込み指定を可能にしました。
#+++ ・スクロールバーの色変更を設定出来るようにしました。
#+++ ・最新投稿を開き、新規投稿をクリックすると、入力フォームの月が1月になるバグを修正
#+++ ・最新投稿件数を設定しても反映していないバグを修正
#+++ ・「みんなで日記を書く」の設定で「タイトル無し」で投稿した場合、「名前」が表示されないバグを修正
#+++ 2001.11.04(Ver0.5c) >>
#+++ ・違う月の同一記事Noに対してレスがある場合、違う月のレスまで一緒に仲良く表示されるバグを修正。(^^ゞ
#+++ ・日記本文と日付表示部の枠の色を別々に表示出来るようにしました。(msg_bordercolor2が効力無かっただけ(^^;;;)
#+++ ・最新レス及び投稿画面で修正・削除が可能になっているようにしておりましたが、
#+++ 違う月で同一記事Noを発生させる仕様にした為無理がありましたので同画面からはメンテナンス不可としました
#+++ ・画像サイズ取得出来ない場合があるバグを修正。
#+++ ・管理人でもタグ使えないバグを修正
#+++ 2001.11.03(Ver0.5b) >>
#+++ ・画像サイズ取得出来ない場合があるバグを修正。
#+++ 2001.11.02(Ver0.5a) >>
#+++ ・$simaru=''の指定時に投稿No等は表示されないバグ対応。
#+++ ・「ログをダウンロード」のボタンが表示されない場合があるバグ対応
#+++ ・「説明画面」でのアイコン一覧を一列何個表示の指定を追加
#+++ ・縮小画像から通常サイズを表示する際のロジックを修正。ネスケで開けなかったし。(^^ゞ
#+++ ・通常サイズ表示は「画像サイズの大きさで開く」と「新規ウインドウとして開く」の設定を追加
#+++ ・著作権表記が消えちゃうバグ修正。(^-^;
#+++ ・画像ファイル名に「&」が入っていると通常サイズで表示出来ないバグ対応。
#+++ ・初期表示を「前日」にするか「当日」を設定出来るようにしました
#+++ 2001.10.27(Ver0.5) >> ・β版リリース
#+++
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
require './jcode.pl'; #日本語コード変換
$url = ""; #戻り先URL
$script = "./test.cgi"; #このCGIの名前を指定
$titlename = '日記'; #タイトルを指定
$titlelogo = ''; #タイトル画像を指定。src=の後ろに画像のパスを指定してね。(使用しない場合は、''で良い)
$bgcolor = '#ffffff'; #背景色を指定
$backpicture = ''; #背景画像を指定(使用しない場合は、''で良い)
$tbgcolor = '#FFFFCC'; #入力フォームの背景色を指定
$ftextcolor = '#333333'; #入力フォームの文字色を指定
$calcolor = '#ffffff'; #カレンダー部分のセル背景色を指定
$calbordercolor = '#c20000'; #カレンダー部分の枠線の色を指定
$msg_cellbgcolor = '#FFFFFF'; #日記部分の本文セル背景色を指定
$msg_bordercolor2 = '#DBCCB3'; #日記部分の日付枠線の色を指定
$msg_cellbgcolor2 = '#c20000'; #日記部分の日付セル背景色を指定
$msg_celltxcolor2 = '#ffffff'; #日記部分の日付セル文字色を指定
#下記の背景色指定をした場合に、上記の$msg_cellbgcolor2やtxcolor2の色指定ではなくって、
#指定した背景色とそれに対応した文字色と同じ色で「日付表示部分」を表示する場合は1。上記の指定にする場合は0。
#・・・って指定細かすぎ?だって・・・こだわりたいのだー!(笑)<と無駄なソースをばんばん埋め込むσ(^_^)。
$awaseru = 1 ;
$colb_use = 1; #(0:色指定する 1:色指定しない)
#$colb_useが1(指定しない)場合は、下記の1番目の色を採用します。
#入力フォーム・背景色の指定
@COLORS_B = ('#ffffff','#B1D23E','#E7DE38','#81BEC9','#F1A287','#E1BAE2','#FBF7A6','#E1E1E1','#FFDD55','#EF653D');
#背景色に対してのタイトルやレスフォーム部分の文字色もやっぱり変更出来ないとだめだね。っちゅー訳で文字色。@COLORS_Bと同じ数だけ指定してね。
#$colb_useが1(指定しない)場合は、下記の1番目の色を採用します。
@COLORS_F = ('#B00000','#005E00','#EF5918','#075981','#808080','#C9A574','#C67575','#8C5184','#98BAC9','#FFA500');
$password = 'pass'; #メンテナンス用パスワード(管理者用)
#<<<祝日の設定(成人の日・体育の日・春分の日・秋分の日は除きます)
@holiday = ('0101','0211','0429','0503','0504','0505','0720','0915','1103','1123','1223');
#◆<<< 指定年月のログを、一度に1ヶ月分表示させるか?(yes,no,week)。
#◆<<< noの場合は一日ずつ表示(一日毎にクリックするとログを表示するパターン)
#◆<<< weekの場合は週単位で表示(1ヶ月分表示する事も可能です)
$monthview = 'yes';
#◆<<< 上記の$monthviewが'no'以外の場合、
#◆<<< ログを昇順(上から1〜31日)に表示するなら'1',降順(上から31〜1日)の場合'2'
$viewsort = 2;
#◆<<< カレンダー部分(ひとマス)のheight,width(四角形なので、設定値も1個だけね)40以上だとちょっと縦長になるけど我慢。
$calsize = 20 ; #Pixel
#◆<<< ↓お好きなようにどうぞ。例: ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')
@week = ('日','月','火','水','木','金','土');
$col = 51 ; #日記を書く欄の横桁数(80だと日本語で40文字です)
$row = 10 ; #日記を書く欄の行数
#==========================================================================================
#>>>カレンダー部分に『日記を書いた日』である事を認識させる設定
#==========================================================================================
# $icon_gif[0]が設定されている場合は、$icon_gif[n]を優先的に表示させます。
# $icon_gif[0]が設定されていない場合(削除してもいいけど)は
# $img_gifが設定されていれば$img_gifの画像を表示、未設定の場合は■を表示します。
#1個のアイコンだけを使用する場合
$img_gif = './saru.gif'; #"メモを書いた日"に表示する画像を指定。(指定しないと■が表示されます)
#複数のアイコンを使用する場合。たくさん設定した場合、$icon[4]...$icon[9]のようにただ増やしていけばいいです。
$icon[0]='../../seedling.gif' ; $iconnm[0]='1';
$icon[1]='../../duckling3.gif' ; $iconnm[1]='2';
$icon[2]='../../note3.gif' ; $iconnm[2]='3';
$icon[3]='../../movie1.gif' ; $iconnm[3]='4';
$icon[4]='../../grape.gif' ; $iconnm[4]='5';
$icon_w = 13; #アイコン横サイズ(全アイコンが同じサイズの場合。異なる場合は0にしてね)
$icon_h = 13; #アイコン縦サイズ(全アイコンが同じサイズの場合。異なる場合は0にしてね)
$disp_icon = 0 ; #日記を表示した際に日記の横にアイコンも表示する?(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] = '../hide/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] = './cow.gif' ; $iconnm2[2] = '気分はうし' ;
$icon2_w[2] = 32 ; $icon2_h[2] = 32 ;
$icon2[3] = './denchi.gif' ; $iconnm2[3] = '気分は電池' ;
$icon2_w[3] = 32 ; $icon2_h[3] = 32 ;
#アイコン一覧を表示する際、1行にアイコンを何個表示します?
$icon_line = 3 ; #←の場合、3個表示したら改行するって事です。
$tcolor = "#000000"; # 文字色
$linkcolor = "#006666"; # リンク色(未読リンク)
$vlinkcolor = "#336633"; # リンク色(既読リンク)
$alinkcolor = "#FFFF00"; # リンク色(押した時)
$hovercolor = '#ff0000'; #リンクをポイントした際のアンダーライン色(IEのみ) u000301
$pt = '9pt'; #全体のフォントサイズ(pt指定以外何があるのか、僕知らない。(^^ゞ)
$back_gif = '../../prev6.gif'; #「1ヶ月戻る」用画像(使用しない場合は'')
$next_gif = '../../next6.gif'; #「1ヶ月進む」用画像(使用しない場合は'')
$setyear_b = 0; #カレンダーを年月指定で移動する場合、「年」は過去何年まで表示します?(1の場合、前年まで表示)
$setyear_a = 1; #カレンダーを年月指定で移動する場合、「年」は未来何年まで表示します?(5の場合、5年先まで表示)
$tbl_sz = '400' ; #日記表示部のテーブル横幅(ピクセル又は%)
$color_nml = '#2f4f4f'; #カレンダー・「平日」の文字色
$color_sat = '#396b95'; #カレンダー・「土曜日」の文字色
$color_sun = '#d23c3c'; #カレンダー・「日曜日」の文字色
$color_hol = '#d23c3c'; #カレンダー・「祝日」の文字色
$color_today = '#E1D2BA'; #カレンダー・「今日」の背景色
$resflg = 1 ; #レス機能を使用する?(0:しない 1:する)
#投稿時のパスワードをcrypt関数を使用する(暗号化)
#crypt関数が利用出来ない場合もありますので、投稿時にエラーになる場合は、「0:使用しない」にして下さいね。
$ango = 1 ; #0:使用しない 1:使用する (推奨:1:使用する)
#色の指定(1行レス投稿時の文字色)。色を増やしたい場合は、'#336699','#003366'のようにどんどん増やしていいですよ。
@COLORS = ('#B00000','#005E00','#EF5918','#075981','#808080','#C9A574','#C67575','#8C5184','#98BAC9','#FFA500');
@COLORSNM = ('あか','みどり','オレンジ','あお','グレー','ゴールド','ピンク','むらさき','みずいろ','きいろ');
#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 = '' ;
#レス投稿フォームのコメント入力欄は「1行テキスト」?「複数行テキスト」?
$res_text = 0 ; #0:1行テキスト 1:複数行テキスト(テキストエリア)
$sz = 60 ; #1行レス場合、1行の文字数は?
$c_sz = 50 ; #複数行テキストの場合、1行の文字数
$r_sz = 3 ; #複数行テキストの場合、行数
$minnade = 0; #管理人以外も日記を書けるようにする?(0:しない 1:する)
$minnade_gif = ''; #$minnade=1の場合に表示する「新規投稿用アイコン画像」を指定。画像を使用しない場合は''でいいです。その場合「新規投稿」と表示されます
$zurazura = 1 ; #1日に複数回(人)日記を書いた場合、アイコンを1個しか表示しないようにする?(0:しない 1:する)
$kiero = 1; #カレンダーを表示しますか?(0:no 1:yes)…同スクリプトに直接アクセスした際に、カレンダーを表示しないで、当月の日記部分のみ表示する場合は1となります i001109
#=============================================================================================================================================================================================
#フォームCSS設定 ※使用しない場合は、$css_style = "";とし、そこから2行(先頭がEOMの行までを)を削除して下さい。
$css_style = <<"";
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Sendmailが使える方のみ以下の項目を設定して下さい。(Ver0.85からの機能)
# ※Sendmailとは?
# メールソフトを立ち上げないで、指定した相手にメールを送る事が出来る機能です。
# 自分のプロバイダーがSendmailに対応しているか、パスはどこ?等は、各自のプロバイダー
# のHPでご確認して下さいね。
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#投稿時に管理者にメール送信する場合、sendmailのパスを指定
$sendmail = "";
#メール送信先アドレス。(管理者のアドレス)…「@」の前には必ず「¥」を付けてね。
$smail_address = "xxxxxx\@xxx.xx.jp";
$hiho = 0 ; #プロバイダーが「hi-ho」の人のみ「1」にして下さい。 ※Sendmail使う場合
$sinchaku = 5 ; #レス機能有にした場合、最新レスのあった日記を表示します。0の場合は表示しない、0以外は指定した数だけ表示します。
$sinchaku2 = 3 ; #最新投稿を表示します。0の場合は表示しない、0以外は指定した数だけ表示します。
$omakase = 3 ; #日記表示部分の「日付」が表示されてる所と、「本文」が表示されている
#テーブルの間にある隙間をどれくらいにします?数字でよろしく。
#ログ表示の際、「日記の日付」・「投稿日付」の表示方法設定
# ○:表示する ×:表示しない
# $timedisp=1:「日記の日付:○」・「投稿日付:○」
# $timedisp=2:「日記の日付:○」・「投稿日付:×」
# $timedisp=3:「日記の日付:×」・「投稿日付:○」
# $timedisp=4:「日記の日付:×」・「投稿日付:×」
$timedisp = 1 ;
$method = 'POST'; #METHODの指定(POST又はGET)
$tag = 0 ; #管理人以外もタグ許可しますか?(0:no 1:yes)
#<<< ログ設定…指定したディレクトリ($olddir)直下に"200101.txt".."200112.txt"(上4桁は年月)のように作成します
#<<< ※CGIと同じ階層には、設置出来ません。必ずログ保存用フォルダを作成してください。
#<<< ※月単位に日記を保存します。
$logdir = './notelog/' ; #過去ログ作成用ディレクトリを指定。最後に必ず「/」を付けてね。
$target = '_top' ; #[HOME]をクリックした時のターゲット指定
$bdcolor = '#ffffff'; #所々に使っております横線(水平線)の色(IEだけ色変わる)
$bdcolor2 = '#d3d3d3'; #レス有りの場合、本文とレス文の間の横線(水平線)の色(IEだけ色変わる)
$dlsw = 1 ; #ログをダウンロード可能にする場合(Winのみ)は「1」を指定。
$simaru = '#c20000' ; #日記本文のテーブルに枠線要らない?要るなら線の色を。要らないなら''。
$set_font = 'Georgia, Arial, Helvetica, sans-serif'; #カレンダーの数字部分だけフォント指定出来ます。フォント名を「,」で区切ってズラズラと
$findsw = 1 ; #「検索」を使用します?(0:使用しない 1:使用する)
$mojisz = 2 ; #日記表示部分のフォントサイズ
$spacer_gif = '../../'; #ダミー透過画像。画像はそのまま使用してね。パスだけ修正。
#▼タイトルの下に何か表示したいメッセージがあれば"EOM";の次の行からEOMの前の行にメッセージどうぞ。
# 表示しない場合は、"EOM";とEOMの間の行を削除してね。
$HEAD_COMMENT = <<"EOM";
日記
EOM
#★【画像アップロードを使わない場合は、「$UpFolder = "";」にしておいて他の画像アップに関する設定項目は無視していいですよ】
# アップロードディレクトリのパス → パスの最後は / を付けてください。
#※hi-hoの方は、$UpFolder = "$ENV{'HOME'}/html/画像フォルダ名/";として下さいね。
#※Niftyの方は、$UpFoler = "/homepage/画像フォルダ名/";でたぶん良いかと・・・(^^;;;
$UpFolder = "../../";
# アップロードディレクトリのURLパス → パスの最後は / を付けてください。
#※hi-hoの方は、$UpUrl = "../../../ユーザー名/画像フォルダ名/";
#※Niftyの方は、$UpUrl = "http://homepage?.nifty.com/ユーザー名/画像フォルダ名/";でたぶん良いかと・・・(^^;;;
#※画像がCGIフォルダに設置可能なサーバーをご使用の方は上記$UpFolderと同じでいいと思いますわ。
$UpUrl = "../../";
# 投稿受理最大サイズ (bytes)
# → 例 : 102400 = 100KB
$maxdatasz = '102400';
# 画像ファイルの最大表示サイズ(Pixel)。サイズを超えた場合は画像縮小表示。
$MaxWidth = 300; #横幅 ※必ず指定して下さい。どうしても縮小したくない方は999999とかにしてね。
$MaxHeight = 150; #縦幅 ※必ず指定して下さい。どうしても縮小したくない方は999999とかにしてね。
$point = 1 ; #画像の表示位置(1:Left 2:Center 3:Right)
$maware = 0 ; #画像に対して文章の回り込みをしますか?しない場合は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の行の間(7行)を削除してね。
$scrollbar = <<"";
#=============================================================================================================================================================================================
#<<< ここから下はいじらない方が身のためです。
###############################################################################
#### Main Process START #####################################################
###############################################################################
$agent = $ENV{'HTTP_USER_AGENT'}; #i000429
if ($agent !~ /MSIE/i) { $css_style = "" ; } #i000429
#<<<システム日時・時刻取得
@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 "