処理の肝心な部分のソースが開示されていないようです。
また、「ネット上で配布されているCGI」の出典を示して下さい。
ネット上で配布されているCGIを使っているのですが
登録数が200を超えたあたりから、古いデータ(data.dat)が100個ほど消えてしまいました。
ただコピペしただけなのでなぜ消えたのかわかりません。
どこか直せばいい所があるのでしょうか?
Perl
1$max = 25; # テーブル1つあたりの人数 2$max_table = 2; # 1ページに表示するテーブルの数 3 4$checkname = 0; 5 6$makeindex = 0; 7 8$formmail = 1; 9 10$adminmail = 0; # 0:送らない 1:新規投稿の場合のみ 2:修正の時のみ 3:新規投稿と修正の時 11$mailfor = 'xxxx@xxx.xxx'; # 送り先メールアドレス。送らないときは変更の必要無し 12$mailfrom = 'Formmail'; # 差出人欄に表示するアドレス。これは変更しなくてもOK 13 14$usetag = 1; 15 16@errtag = ('table','script','meta','form','!--','embed','html','body','tr','td','th','noscript','style'); 17 18$autolink = 1; 19 20$show_host = 0; 21 22# 訪問者が入力したURLに飛ぶときは・・・0:同じ窓で表示 1:別窓表示 23$target = 1; 24 25# 日付は年まで取得する?(0=月まで 1=年まで) 26$getyear = 0; 27 28# 詳細表示ページで、前後のNoの人へのリンクを表示するするか? 29# (0=表示しない 1=上部にのみ表示 2=下部にのみ表示 3=上下に表示) 30$numlink = 3; 31 32# 曜日の表示法。変更例→ @wday_array = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); ←こんな感じ 33@wday_array = ('日','月','火','水','木','金','土'); 34 35# 登録者が自分で削除を行った場合の設定 36# 0:削除自体不可能にする(削除フォーム非表示) 37# 1:完全削除(再登録は不可能になるが、ログは軽くなる) 38# 2:欠番状態にする(再登録可) 39# 3:1と2で選択可 40$deltype = 2; 41 42# 項目入力フォームと、コメント入力フォームの幅 43$item_wid = 30; # 項目入力フォーム 44$com_wid = 60; # コメント入力フォーム 45 46# データベース風に使う場合は、$namaeを「情報」や「データ」としてもいいかも。 47# スクリプト中の「名前」とという単語をすべて置きかえます。 48$namae = '名前'; 49 50# 背景画像の設定(http://~でOK) 51$background = ''; 52 53 54#-------------------------------- 55# ファイル・フォルダへのパス設定 56#-------------------------------- 57# cgi-lib.plへのパス(同じフォルダならこのまま) 58require './cgi-lib.pl'; 59 60# jcode.plへのパス(同じフォルダならこのまま) 61$jcodepath = './jcode.pl'; 62 63# tool.cgiへのパス(同じフォルダならこのまま) 64$uppath = './tool.cgi'; 65 66$sendmail="/usr/sbin/sendmail"; 67 68$stylepath = './style.css'; 69 70$cgipath = './list.cgi'; 71 72$datapath = "./data.dat"; 73 74$imgdir = './img/'; 75 76 77$main_title = 'Miniりすと'; 78 79# タイトルに画像を使いたい場合は以下を設定 80$t_img= ''; # タイトル画像をURLで指定 81$twid = 135; # 〃 の横幅(ピクセル指定) 82$thei = 80; # 〃 の縦幅( 〃 ) 83 84 85$usedeny = 0; 86@deny = ("xxx.xxx.com","123.456.789.*",""); # 対象のホスト名(IPアドレス) 87 88# アクセス制限に引っ掛かる場合は・・・(0:名簿の閲覧自体禁止 1:閲覧はできるけど投稿できない) 89$denytype = 0; 90 91# アクセス制限に引っ掛かった場合のコメント。 92$denycom = '現在利用できません'; 93 94$base_url = ''; 95 96$method = 'POST'; 97 98 99$locktype = 0; 100 101$lockfile = "list.loc"; # ロックファイル名 102$lockdir = "lock/"; # ロックファイルディレクトリ(パーミッションは777or755) 103 104$encode = 1; 105 106$location = 1; 107 108$imgdir2 = ''; # 通常は空のままでOK 109 110 111&decode; 112$lockfile = "$lockdir$lockfile"; # ロックファイルを定義 113if(!$imgdir2){ $imgdir2 = $imgdir; } # CGI専用サーバーでの利用を考慮 114if($usedeny && !$denytype){ &host_check; } # アクセス制限 115 116if($mode eq "") { &index; } 117elsif ($mode eq "show") { &show; } 118elsif ($mode eq "view") { &show; } 119 120require "$uppath"; # 滅多に使わないサブルーチン入れ読み込み 121if ($mode eq "add") { &add; } 122elsif ($mode eq "find") { &find; } 123elsif ($mode eq "addform") { &form; } 124elsif ($mode eq "editform"){ &form; } 125elsif ($mode eq "send_form") { &send_form; } 126elsif ($mode eq "admin") { &admin; } 127elsif ($mode eq "edit"){ &edit; } 128elsif ($mode eq "c_pass") { &edit; } 129elsif ($mode eq "c_img") { &edit; } 130elsif ($mode eq "c_name") { &edit; } 131elsif ($mode eq "del") { &edit; } 132elsif ($mode eq "download") { &download; } 133elsif ($mode eq "send") { &send; } 134elsif ($mode eq "make") { &make; } 135elsif ($mode eq "remake") { &remake; } 136else{ &index; } 137exit; 138 139 140# ------------ # 141# デコード処理 # 142# ------------ # 143sub decode{ 144&ReadParse; 145if(%in){ require "$jcodepath"; } 146while (($key,$val) = each %in) { 147 if ($key ne "upfile") { 148 &jcode'convert(*val, "sjis", "", "z"); 149 150 # タグ処理 151 # 全て許可 152 if($usetag == 2) { 153 if($in{'kill_tag'} && $key eq "comment"){ 154 $val =~ s/</</g; 155 $val =~ s/>/>/g; 156 $val =~ s/\"/"/g; 157 } 158 foreach ( @errtag ){ 159 if ($value =~ /<$_(.|\n)*>/i) { &error("利用できないタグが含まれています"); } 160 } 161 } 162 else { 163 # コメントのみタグ許可 164 if($usetag == 1 && $key eq "comment"){ 165 if($in{'kill_tag'}){ 166 $val =~ s/</</g; 167 $val =~ s/>/>/g; 168 $val =~ s/\"/"/g; 169 } 170 else{ 171 foreach ( @errtag ){ 172 if ($value =~ /<$_(.|\n)*>/i) { &error("利用できないタグが含まれています"); } 173 } 174 } 175 } 176 # 全て不可 177 else{ 178 $val =~ s/</</g; 179 $val =~ s/>/>/g; 180 $val =~ s/\"/"/g; 181 } 182 } 183 184 # 区切り文字の”,”があれば",”に変換 185 $val =~ s/\,/,/g; 186 187 # 改行処理 188 if ($key eq "comment") { 189 $val =~ s/\r\n/<br>/g; 190 $val =~ s/\r/<br>/g; 191 $val =~ s/\n/<br>/g; 192 } 193 else { 194 $val =~ s/\r//g; 195 $val =~ s/\n//g; 196 } 197 198 if($autolink && $key eq "comment"){ 199 $val =~ s/([^=^\"]|^)(http\:[\w.\~\-/?\&+\=\:\@\%\;\#\%]+)/$1<a href=\"$2\" target='_blank'>$2</a>/g; 200 } 201 } 202 $in{$key} = $val; 203} 204$mode = $in{'mode'}; 205$sort = $in{'sort'}; 206$in{'url'} =~ s/^http\:////; 207} 208
あなたの回答
tips
プレビュー