ケチな宇宙サービスプロバイダーに対処するために、リンクされたデータテーブルを使用して大規模なデータベースを保存することを誰もが考えていました。次に、別の方法を説明します。1 つのフォーラムのコードを使用して 2 つのフォーラム プログラムを実行します。これにより、サーバーの CPU 使用率が高すぎるという理由で 2 セットのフォーラム プログラムを 1 つのスペースにセットアップすることを許可しない宇宙サービス規制を回避できます。
1. データベースを準備します。インターネット上の主流の ASP フォーラム プログラム (Dongwang Forum 6.1 など) のほとんどは、Access データベースに基づいています。すべてのフォーラムの投稿、ユーザー情報、フォーラムの設定などがデータベース ファイルに保存されます。 2 つのフォーラム データベース ファイルを準備し、フォーラム プログラムで異なる条件に応じて異なるデータベース ファイルを開くようにする必要があります。
ローカル フォーラムをサーバーにアップロードし、bbs1.mdb と bbs2.mdb という名前の 2 つのデータベースを用意し (フォーラムのセキュリティを確保するため、ファイル名はより複雑な名前に変更できます)、サーバーの / にアップロードします。 abc/bbs/data/ ディレクトリ。データベースは、既存のフォーラムまたはフォーラムの初期データベースのいずれかを使用できます。
2. 判定条件 フォーラムへの参加の判定には、訪問者のIPアドレス、OS、フォーラムへのアクセス時間など、さまざまな条件があります。ここでは、作成者は訪問者から送信された URL アドレスを使用します。
フォーラムには、「www.cpcw.com」と「WWW.CPCW.COM」などの 2 つの異なるアドレスがある場合がありますが、2 つの URL はコンピュータ新聞の Web サイトを指しますが、VbScript の観点からは、大文字なので 2 つの異なる ASCII 文字列です。と小文字は別の文字として認識されます。したがって、大文字と小文字が異なる 2 つのアドレスを判定条件として使用できます。
Request.ServerVariables は、環境変数を取得するための ASP 組み込みオブジェクトです。コード Request.ServerVariables("SCRIPT_NAME") の値は、現在実行されている ASP ページのパスです。たとえば、 http://www.scat.com/aBc/test.aspにアクセスする場合 (大文字と小文字に注意してください)、Request.ServerVariables("SCRIPT_NAME") の値は "/aBc/test.asp" になります。
2 つのフォーラムのアドレスはhttp://www.scat.com/ABC/bbsおよびhttp://www.scat.com/abc/bbsであると規定します。実際、この方法を使用して 3 つ以上のフォーラムを開くことができます。順列と組み合わせの観点から見ると、長さ n の URL には大文字と小文字の組み合わせが 2 の n 乗通り存在する可能性があるためです。
3. フォーラム プログラムを変更します。現在、ほとんどの ASP フォーラム プログラムには、データベース オブジェクトを開くコードが分離され、conn.asp に配置されています。このファイルを参照してデータベースにアクセスします。これにより、次の操作が便利になります。
テキスト エディタで conn.asp を開き、次のコードを見つけます。
Dim Db
'無料ユーザーの場合は、初めてローカル データベース アドレスを変更してください...
DB="datadvbbs6.mdb"
プログラムは変数 Db を定義します。 、データベースの相対アドレスがこの文字列変数に割り当てられます。この変数の値は、後でプログラムがデータベース オブジェクトを開くときに使用されます。
これらの行を次のように変更します。
Dim Db
Dim Whichbbs
Whichbbs =Request.ServerVariables("SCRIPT_NAME ")
if left(Whichbbs, 4)="/ABC" then '左関数を使用して、検証に必要な長さの文字列をインターセプトします
Db= " /data/bbs1.mdb"
else
Db="/data/bbs2.mdb"
end if
このコードの意味は、訪問者によって送信されたアドレスを Whichbbs 変数に割り当てることです。訪問者がフォーラムでアクティブになると URL アドレスの後半が変更されるため、Whichbbs の最初の 4 桁のみが文字列「/ABC」との比較に使用されます。 2 つの文字列が同じである場合、Db には値「/data/bbs1.mdb」が割り当てられ、それ以外の場合、Db には値「/data/bbs2.mdb」が割り当てられます。すると、Db に対応するデータベースが開きます。訪問者が送信したアドレスがhttp://asp2.6to23.com/ABCの場合、フォーラム システムは bbs1.mdb のデータベースを開き、訪問者が bbs1.mdb のフォーラムに入ることができるようにします。それ以外の場合は、bbs2.mdb を開きます。そしてフォーラムに bbs2.mdb を入力します。
この方法では、1 つのスペースに複数のフォーラムをセットアップでき、サーバー リソースの使用量は、2 つの独立したフォーラム システムを個別にセットアップするよりもはるかに少なくなります。
この方法は次のように拡張することもできます。
1. ニュース システム、ダウンロード システム、掲示板、カウンターなど、データベース操作を伴う他の ASP プログラムに適用します。
2. 訪問者の IP アドレスを判定条件 (Request.ServerVariables("REMOTE_ADDR")) として使用して、偽装されたより秘密の IP フィルタリングを作成します。これにより、歓迎されない人々が知らず知らずのうちに実際のフォーラムから隔離されます。
3. 必要に応じて他の情報を判断基準として使用して、独自のパーソナライズされたカラフルなフォーラムを作成します。