#!/usr/local/bin/perl # ↑のパスは設置するサーバーの環境に合わせて変更してください。 # ◆このCGIファイルについて # このCGIファイルは「まろやか投稿小説」をVer1.50にアップデートする際に必要なファイルです。 # Ver1.50から感想数などの追加項目に伴い、Ver1.40a以前のデータ引継ぎに限りこのファイルの実行が必須となります。 # このファイルは拡張子を.cgiにリネームして、mts.cgi等があるディレクトリと同じ場所にアップロードし、 # パーミッションを755(もしくはサーバー環境に合わせて)にし、アクセスしてください。 #### ファイルパス #### $config = './config.ini'; # 設定ファイル #〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 ####■ 以下スクリプト ■#### if (!(-e $config)) { die "Error: $configオープンエラー"; } else { require $config; } if (!(-e $jcode)) { die "Error: $jcodeオープンエラー"; } else { require $jcode; } if (!(-e $cgilib)) { die "Error: $cgilibオープンエラー"; } else { require $cgilib; } if (!(-e $system)) { die "Error: $systemオープンエラー"; } else { require $system; } %FORM = &decode; # デコード if ($FORM{'mode'} eq 'update') { &update; } else { ⊤ } exit; #〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 # ▼ トップ #〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 sub top { # 全小説ファイル読み込み my @allnovel = &file_read("$allnovel"); &header("Ver1.50アップデート"); print qq(
Ver1.50アップデート
); if ((split (/\t/, $allnovel[0])) != 14) { print qq(

[アップデートが必要です。]
アップデートするには以下のボタンを押してください。

); } else { print qq(

[アップデート済みです。]

); } print qq(

TOP

); &footer; } #〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 # ▼ アップデート #〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 sub update { &lock if ($lock); # データファイル読み込み my @alluser = &file_read("$alluser"); my @allnovel = &file_read("$allnovel"); if ((split (/\t/, $allnovel[0])) == 14) { &error("アップデート済みです。"); } my %REVW; foreach (@allnovel) { # 番号,ペンネーム,作者ID,状態,種別,タイトル,作成日,更新日,ジャンル,閲覧数,投票,UPフラグ,完結フラグ my ($no, $pname, $id, $sts, $type, $title, $startd, $endd, $genre, $view, $vote, $up, $end) = split (/\t/, $_); # 小説ファイル読み込み my ($novel, @review); if (-e "./$id/$no.dat") { ($novel, @review) = &file_read("./$id/$no.dat"); } # 感想数 my $revw = @review; $REVW{"$id,$no"} = $revw; # 番号,ペンネーム,作者ID,状態,種別,タイトル,作成日,更新日,ジャンル,閲覧数,投票数,感想数,UPフラグ,完結フラグ $_ = "$no\t$pname\t$id\t$sts\t$type\t$title\t$startd\t$endd\t$genre\t$view\t$vote\t$revw\t$up\t$end"; } foreach (@alluser) { # 番号,ペンネーム,Mail,URL,ユーザーID,パスワード,ホスト,コメント,登録日,最終執筆日,作品数,投票数 my ($no, $pname, $mail, $url, $id, $pass, $host, $comment, $startd, $endd, $work, $vote) = split (/\t/, $_); my ($user, @novel); if (-e "./$id/user.dat") { ($user, @novel) = &file_read("./$id/user.dat"); foreach (@novel) { # 番号,ペンネーム,作者ID,状態,種別,タイトル,作成日,更新日,ジャンル,閲覧数,投票,Upフラグ,完結フラグ my ($no, $pname, $id, $sts, $type, $title, $startd, $endd, $genre, $view, $vote, $up, $end) = split (/\t/, $_); next if ($type == 4); # 感想数 my $revw = $REVW{"$id,$no"}; # 番号,ペンネーム,作者ID,状態,種別,タイトル,作成日,更新日,ジャンル,閲覧数,投票,感想数,Upフラグ,完結フラグ $_ = "$no\t$pname\t$id\t$sts\t$type\t$title\t$startd\t$endd\t$genre\t$view\t$vote\t$revw\t$up\t$end"; } # ファイル書き込み &file_write("./$id/user.dat", $user, @novel); } } # ファイル書き込み &file_write("$allnovel", @allnovel); &unlock if ($lock); # 結果表示 &header("アップデート完了"); print qq(
Ver1.50アップデート

正常にアップデートが完了しました。

TOP

); &footer; }