広告とCGIの微妙な関係

もし、自動広告でもなんら問題なくCGIが動くのであれば、 ここを読む必要はない。 ここでは、CGIがうまくいかない場合の解決法を書く。

あの〜、私、CGIなんてよくわからないんです。

xフォルダにCGIを丸ごとぶち込んでフレームから呼び出せ。 どうせ今からする説明なんて読んでもわからん。 俺でもよくわかっていないからな。

つうことで、終了。

うまくいかないCGI

自動広告による影響は既に述べたが、 はっきり言うとうまくいかないCGIは次のタイプだ。

まとめると、HTMLファイルを吐かないCGIはうまく行かないと言うことだ。 自動広告はHTMLであるという前提でおこなっているから、こうなってしまう。

さて回避しよう

回避の仕方は既に述べた。 nobannerタグ以外の方法であれば、どれでもいい。

広告は?

さて、問題は広告だ。 画像を出力するCGIやLocationでどっかに吹っ飛ばすCGIであれば、 広告を貼り付ける必要はない。 というより広告を貼り付けることは出来ない。

だが困ったことに、同じCGIのくせにHTMLを吐く場合もあったりする。 カウンタ等の管理モードなどがそれにあたるだろう。 何で、管理用のCGIを別に作らないんだよ…と俺は疑問に思うんだが、 そう思うやつがどうやら少数派らしいのだ。 ということで、これらのCGIに広告を付ける必要があるのか? と思うことだろうが、 XREAでは管理人のみが見るような管理用のCGIには 広告を貼り付ける必要がないとされている。 よって、他の人に見えるように公開していない限り、 広告を貼り付ける必要はない。

しかしだ、掲示板などでよく使われるLocationを時々吐くCGIは困った物である。 公開されているモードでもHTMLだったりLocationだったりする。 この時はHTMLに広告を手動で貼り付ける必要があるだろう。 まあ、頑張れとしか俺は言うことが出来ないが…。

広告を手動で貼れ

まず、手動広告タグを入手する必要がある。 これは管理メニュー*1 から手に入れられる。 人によって異なるから注意が必要だ。 使うタグは通常の物でもポップアップでも構わない。 ただし、自動広告のタグは手動広告として使ってはならない。

さて、広告タグは手に入れたとして説明を続けよう。 まず、cgiのファイルを中身を検索してみよう。 もちろん、 CGIプログラマーなら正規表現検索が使えるエディタを使っているだろうな?

<[Bb][Oo][Dd][Yy][^>]*>

これでbodyの開始タグの位置がわかった。 あとはその後ろに広告タグを加えるだけだ。 簡単だろ。

と、ここで本当は終わりにしたいのだが、 うまくいきません、エラーがでますと言う奴が絶対でてくる。 なんつうか、お前はとほほ *2 を全ページ読んでから*3、 ここを読め。 お前は本当にCGIを知っているのか? 問いたい、問いつめたい、小一時間問いつめたい。 つうことで、Perlについては参考になるサイトはたくさんあるので、 説明を省く*4

Rubyなんすけど…

おお、君はRubyユーザーか。 なら、君にだけこっそり教えよう。 まず文字列が「"」で囲まれているかどうかで違う。 もし、「"」で囲まれていなかったら、 そのまま広告タグをbodyの開始タグの後ろに付けるだけでいい。 では、囲まれていたらどうするのか? その時は、" + '広告タグ' + "と挿入しろ。 「+」ではなく「.」をつけるとPerl用になるのだが、気にするな。 また、「+」ではなく「<<」にするとスクリプトがちょっとだけ高速になる。

CGIのHTML生成を使っているんですが…

……。

いずれ書くよ…。 俺使ったことないから、よく知らないんだ…。 ごめんよ…。

それでもうまくいきません

これ以上はそれぞれのスクリプトによって異なる。 取れる選択肢はこれらいずれかだ。

なお、CGIの作者に聞くのだけはやめろ。 そのCGIが有料有保証でない限りはな。

そして、伝説へ…

なんつうか…、 書いていて疲れた割には 説明が下手くそな物になってしまった。



*1サーバによって異なる。 http://www.[server].xrea.com/jp/admin.shtmというURIになり、 [server]にはサーバ名がはいる。例えば、s1、s2、k1と言った。
*2ととほのWWW入門。 特に、Perlぐらいは読んでおいてね。
*3俺も全部読んでないんだけど…
*4というか、俺があまりPerlを知らないのは秘密だ!