プロが教えるわが家の防犯対策術!

cgiでユーザーエージェントによって、
ホームページに表示される画像を変更したいのですが、
プログラム・やり方を教えていただけないでしょうか。
よろしくお願いします。

A 回答 (3件)

ANo.1さんの回答の補足になりますけど




UAはブラウザによっては偽装とかもできますけどそれを承知の上で
でしょうか。

どうしてもCGIでやりたいとかクライアント側の環境依存などを
考慮したいというのでなければたしかにJavaScriptの方が簡単かも
しれません。

JavaScriptは対応環境でも無効にしたら動作しません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>JavaScriptは対応環境でも無効にしたら動作しません。
そうですね。携帯かPCで閲覧ページを切り替えたかったのですが駄目ですね。

お礼日時:2009/09/26 03:25

>>javaのコードを書いていただけないでしょうか。


JavaとJavascriptは別なものですが、求めうる細かい条件が分からないので書きようがないのが実際です。

 携帯からだと、Javascriptは厳しいのでcgiになると思います。
 それぞれ携帯のuser_agentは、各携帯サイトに記されています。

以下、cgiだと

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html><head>\n";
・・・・・・

$agent = $ENV{'HTTP_USER_AGENT'};
if($agent =~ /^DoComo/){ $imege = aaaa.jpg;
}elsif($agent =~ /^J-PHONE/){ $imege = bbbb.jpg;
}elsif($agent =~ /^UP.Browser|^KDDI/){ $imege =cccc.jpg;
・・・・
・・・・
else{ $imege =zzzz.jpg; #PC用
}

print "<img src=\"./imege/$imege\">\n";

・・・・・・
print "</body>\n</html>\n";

 たしか、携帯機種によってjpgやらpng、gifのみとかありましたね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
とてもわかりやすいコードです。
勉強になりました。

お礼日時:2009/09/26 03:26

$usrAgent = $ENV{"HTTP_USER_AGENT"};


 とすると、$usrAgentには、http://www.openspc2.org/userAgent/ のようなアクセス者のデーターが入ります。

if($usrAgent =~ /MSN/){
 print "<img src=\"./image/aaaaa.jpg>\"
}elsif($usrAgent =~ /Mac/){
 print "<img src=\"./image/bbbbb.jpg>\"
}elsif・・・・・・

とかになります。

 ただトップページにそれをやるには、index.htmlなどをindex.cgiとかにし、.htaccess に
DirectoryIndex index.cgi index.html
などと記さなければなりませんが、これだけならCGIよりも通常のHTML + Javascriptでやった方が簡単だと思います。

<HEAD>~</HAED>内に

<script language="JavaScript">
<!--
function Image(){
 if(navigator.appName.charAt(0)=="N" ){
  document.write("<img src=\"./image/aaaaa.jpg>");
 }else{
  document.write("<img src=\"./image/bbbbb.jpg>");
 }

}
//-->
</script>

表示させたいhtmlの箇所に

<script language="JavaScript">
Image();
</script>

 Javascriptの詳細は、Javascriptのカテゴリーにてですが。

この回答への補足

携帯かPCかで、表示させる画像を変えたいのですが、
javaのコードを書いていただけないでしょうか。
javaがわかりません。

補足日時:2008/08/08 16:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!