CGI-BBS > 電子掲示板 > 簡易BBS > 環境変数の取得について


カレッヂ
カレッヂ


質問者 caster  投稿日 10/19(金) 16:24:31
minibbs ver10.31で本文の後に
Mozilla/4.0 (compatible; MSIE *.*; Windows **)
と言う様な環境変数を表示させるにはどのようにしたら
よいのでしょうか?初心者ですみません。
質問者 キャスター  [削除]  投稿日 10/22(月) 14:54:51
あのあと自分で色々調べて
printo $Http_User_Agent = $ENV{'HTTP_USER_AGENT'};
と言う記述を468行目に追加したら
確かに本文の後に自分の環境変数が表示されるのですが、
過去のメッセージの本文の後にも自分の環境変数が表示されます。
訪問者の環境変数を常に残して行くにはどのようにしたら
よいのでしょうか?どなたかご教授願います。
回答者 呑兵衛  [削除]  投稿日 10/24(水) 00:46:42
そこは、ファイルをHTMLにフォーマット出力する場所ですね。
だから常に、見ている方の $ENV{'HTTP_USER_AGENT'} が出てきます。
その110行後ぐらい、sub regist 内の

$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
if ($host eq '') { $host = $addr; }
if ($host eq $addr) { $host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr; }

# このあたりに
$agent = $ENV{'HTTP_USER_AGENT'};
# 投稿文の最後をやたら改行する例があるので、
$FORM{'value'} =~ s/(( | )*\n+)+$//g;
# 改行 ユーザエージェント を投稿文の最後に文字連結
$FORM{'value'} .= "\n$agent";
# 以上を挿入

&lock1; # と続く

これでどうでしょう。
質問者 caster  [削除]  投稿日 10/25(木) 17:34:29
出張行ってて返事遅くなりました。
申し訳有りません。
今試してみたのですが、どうもうまくいきません。。。
どこか間違ってるのでしょうか?
お教え下さい!

$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
if ($host eq '') { $host = $addr; }
if ($host eq $addr) { $host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr; }

$agent = $ENV{'HTTP_USER_AGENT'};
$FORM{'value'} =~ s/(( | )*\n+)+$//g;
$FORM{'value'} .= "\n$agent";

&lock1;

回答者 呑兵衛  [削除]  投稿日 10/25(木) 19:46:43
ついつい癖で改行コードを \n にしていました。

\n を \r に変えてください。
$agent = $ENV{'HTTP_USER_AGENT'};
$FORM{'value'} =~ s/(( | )*\r+)+$//g;
$FORM{'value'} .= "\r\r$agent";
または
$FORM{'value'} .= "\r\rAgent[ $agent ]";

質問者 caster  [削除]  投稿日 10/26(金) 12:01:45
呑兵衛様大変有り難う御座いました!

$agent = $ENV{'HTTP_USER_AGENT'};
$FORM{'value'} =~ s/(( | )*\r+)+$//g;
$FORM{'value'} .= "\r\r$agent";

で、無事表示することが出来ました!
お世話になりました!

このページは終了したので返信(回答)は書きこめません

Web裏技