cgi
[上に]
[前に]
[次に]
太田
2000/01/26(水) 07:16:20
こんにちは。
あるcGIに複数ページからリンクを張っています。
それぞれから来たことが(見てる方に)わかるように、それぞれbodyカラーを変えたいと考えています。
例えばAから来た人は黒背景、Bから来た人はパンダ柄(^^;とかピンク字とか…。
そのCGIの中でこれは実現できるでしょうか。
HTTP_REFERER 参照でどーにかならんかなと考えているのですが…。
よろしくお願いいたします。
茶しぶ男
2000/01/26(水) 09:55:29
> それぞれから来たことが(見てる方に)わかるように、それぞれbodyカラーを変えたいと考えています。
> 例えばAから来た人は黒背景、Bから来た人はパンダ柄(^^;とかピンク字とか…。
イマイチ、言いたい事が分からないけど、
「掲示板などで、Aのページからやって来た人の投稿記事の背景を黒として、Bのページから来た人の投稿記事背景をパンダ画像にしたい」ということと解釈させてもらいましょう(いいのかな?)
# リンク元URL,TABLEの属性
@link_moto = (
'http://aaa/aaa.html,BGCOLOR=BLACK TEXT=WHITE',
'http://bbb/bbb.html,BACKGOUND=panda.gif BGCOLOR=WHITE TEXT=BLACK',
);
foreach (@link_moto) {
($url,$tablebody) = split (/,/,$_);
if ($ENV{'HTTP_REFERER'} =~ /$url/) { # @link_motoに登録有り
print "<TABLE $tablebody>\n"; # 背景決定
$flag = 1;
last;
}
}
if (!$flag) { print "<TABLE>\n"; } # @link_motoに登録されてない場合は背景無し
print "<TR><TD>";
記事内容を出力
print "</TABLE>\n";
一つ一つの記事をTABLEで囲んで、そのTABLEの背景として@link_motoに登録されていたら指定の背景にするようにしています。
ただし、HTTP_REFFERは必ずしもリンク元データが入ってるわけではないので、誤動作してしまうのは避けられないでしょうね。
茶しぶ男
2000/01/26(水) 10:02:58
↑これじゃ、全部同じになってしまいますね。
投稿記事データの中に、HTTP_REFFERから設定されたリンク元データを記録するようにしないといけないですね。失礼しました。
if ($ENV{'HTTP_REFERER'} =~ /$url/) { # @link_motoに登録有り
の部分を投稿記事データ内のリンク元データと比較させるようにすればよろしいかと。
ひつじ
[E-Mail]
2000/01/26(水) 11:47:55
CGIを起動するときに、起動したページがわかるような
パラメータをつければよろしいかと。
フォームで起動するならHIDDENのフィールドにページの
IDをいれておくとか。
びぎな++
2000/01/26(水) 11:57:49
ひつじさんに続いて・・・
Aタグだったら,
A.html・・・<A HREF="http://www.xxx.xxx.cgi?a">
B.html・・・<A HREF="http://www.xxx.xxx.cgi?b">
としてQUERY_STRINGで処理を分岐する方法もあります。
[上に]
[前に]
[次に]