CGIの宣伝掲示板集です
違法及び、アダルトサイトや公序良俗に反するサイトの投稿はご遠慮ください。
宣伝掲示板集
URL整形にpath_infoを用いて静的URLに見せかけ、新規書き込み時に既存の書き込みが後ろへシフトしていきます。投稿後は簡易データーベースフォルダ内のファイルに書き込み数10単位で保存し、表示処理の負荷を軽くしているのが特徴です。NGキーワード対策、連続投稿防止、投稿修正機能付きです。
perl(CGI?)などのWEBプログラムは構文を間違えると100%エラーになり動かないので大変でした。特にNGキーワードを分別する際の正規表現がうまくいかなかったことや、次ページへシフトしていくことへの対応などに時間を割いてしまったような気がします。このへなちょこスクリプトの長所はズバリ「低負荷」だと思います(短所はif関数が多い)。
以下がCGIでの宣伝掲示板集製作工程 from perl超初心者メモです。
作成する実行用CGIファイルは2枚のみです。
A投稿用実行ファイル■主な流れ
- 1.時間とホスト取得
- 2.フォームから入力された変数をデコード
- 3.掲示板投稿用パスワードと必須項目未入力チェック
- 4.各々のBBSの最終書き込みNoなどを設定用簡易データベースファイルから読み込む
- 5.ホストチェック(連続投稿防止)
- 6.必須項目以外の未入力をnosubjectなどに変換
- 7.URLスパマー対策処理
- 8.改行コードをBRタグ改に置換える
- 9.NGワードをテンプレートファイルから読み込み、split関数で分割し該当していないかチェック
- ◇以上までが禁止投稿判別。以下から書き込み可だった場合の処理
- 10.書き込み内容にタグが含まれていたら、これを排除
- 11.BRタグ改を正式タグに変換
- 12.最終書き込みNoをインクリメントし設定用簡易データベースファイル更新
- 14.上記ファイルとは別に投稿内容ファイルを呼び出し、配列に代入(foreach関数)
- 13.(1ファイル/10回投稿毎)にその投稿内容全てを1変数として配列にpush(又はunshift)する。そのためにint関数を用いる。int(最終書き込みNo / 10);
- 14.この配列を投稿内容ファイルに書き込み、更新。
- 15.以上で終了。(これら以外に禁止投稿判別チェック可否用サブルーチンとそのHTMLテンプレートもそれぞれ用意しておく)
B表示用実行ファイル■主な流れ
- 1.path_infoを取得し、これらURLを/(スラッシュ)ごとにsplit関数で分割し、それぞれを配列に代入し、静的URLに見せかける
- 2.URLがBBSのトップページか否か、または書き込みフォームページかどうか判別し、結果を変数に代入。
- 3.表示用HTMLヘッダ部分のテンプレートをファイルから読み込み配列に代入
- 4.設定用簡易データベースファイルから当該BBSの情報を読み込み配列へ
- 5.最終書き込みNoから読み込むべき投稿内容ファイルを2つ選別する。→int関数で1画面に表示したい数を割って整数化した場合と、それに加え余りについての判別も必要。
- 6.5の結果選別したファイルを読み込み、配列に代入してから、さらに表示したいNoに該当するデータを正規表現でマッチしたもののみ新たな配列にpush(又はunshift)
- 7.さらにそのデータにHTMLのタグを加え整形
- 8.elsif関数を多用し次のページへシフトしていくように番号リンクリストを追加。→これもint関数、余りについての判別を使用しました。
- 9.これらヘッダ部分、データ部分、にHTMLとして完結する為のフッタタグを加える。
- 10.print関数とforeach関数にて表示。