極力実機のみでダウンロードさせるには

scm4.cgi、scm4ex.cgi、scm4ex_p.cgiの改造【デモ】

実機でダウンロードできない場合、PCやシミュレータでダウンロードできたときはお知らせくださると嬉しいです。
scm4系のCGIは、ユーザーエージェントのみによってキャリアの振分けをしております。
それは、プログラムの試験などに便利な面も有ることと、私が実機でなくてもダウンロード
OKの状態で使っているという面があるからです。
ですが、携帯実機以外ではダウンロードできない方が良い場合は、リモートホストによる振分けも利用すると少し確度が上がると期待できると思うのです。

『モバイルCGI研究(総合編)』というサイト様で、リモートホストによるキャリア振分けの方法をのせていらっしゃいます。
http://specters.net/cgipon/labo/c_dist.html#remotehost
こちらを参考にして、リモートホストとユーザーエージェントを同時にチェックする改造を試みると良いのではないかと思われます。
ただし、サーバーによってはリモートホストが取り込めない場合が有るようですので、アクセスログをチェックしてみてください。

scm4ex.cgi、scm4ex_p.cgi

CGIのソースで下記の部分を、
# エージェントによって表示の切り替えを行う
    if(   index($agent,"DoCoMo")>=0    ){$pnum=0;$c_mark='i'}
    elsif(index($agent,"J-PHON")>=0 || index($agent,"Configuration")>=0){$pnum=1;$c_mark='v'}
    elsif(index($agent,"UP.Browser")>0 ){$pnum=2;$c_mark='w'}
    elsif(index($agent,"UP.Browser")==0){$pnum=3;$c_mark='h'}
    else{                                $pnum=4;}

下記に置き換えます。
# エージェントとリモートホストによって表示の切り替えを行う
# (http://specters.net/cgipon/『CGIぽん』様の情報を参考にさせて頂きました)

if ((index($agent,"UP.Browser")>0) && ($host =~ /\.(ezweb|ido)\.ne\.jp$/)){
    $pnum=2;$c_mark='w';# EZweb WAP2.0 端末用の処理

} elsif((index($agent,"UP.Browser")==0) && ($host =~ /\.(ezweb|ido)\.ne\.jp$/)){
    $pnum=3;$c_mark='h';# EZweb 旧端末用の処理

} elsif (index($agent,"DoCoMo")>=0 && $host =~ /\.docomo\.ne\.jp$/) {
  $pnum=0;$c_mark='i';#   i-mode 用の処理

} elsif ((index($agent,"J-PHON")>=0 || index($agent,"Configuration")>=0) && $host =~ /\.jp-[ckqt]\.ne\.jp$/) {
  $pnum=1;$c_mark='v';#   J-SKY 用の処理

} else {
  $pnum=4;# それ以外
}

scm4cgi

CGIのソースで下記の部分を、
# エージェントを取得して、表示の切り替えをする。
    if($agent eq ""){ $agent=$ENV{'HTTP_USER_AGENT'}; }

    if(index($agent,"DoCoMo")>=0){
        $pagedata=&page0;
    }elsif(index($agent,"J-PHON")>=0 || index($agent,"Configuration")>=0){
        $pagedata=&page1;
    }elsif(index($agent,"UP.Browser")>0){
        $pagedata=&page2;
    }elsif(index($agent,"UP.Browser")==0){
        $pagedata=&page3;
    }else{
        $pagedata=&page4;
    }

下記に置き換えます。
# エージェントとリモートホストによって表示の切り替えを行う
# (http://specters.net/cgipon/『CGIぽん』様の情報を参考にさせて頂きました)

if ((index($agent,"UP.Browser")>0) && ($host =~ /\.(ezweb|ido)\.ne\.jp$/)){
    $pagedata=&page2;# EZweb WAP2.0 端末用の処理

} elsif((index($agent,"UP.Browser")==0) && ($host =~ /\.(ezweb|ido)\.ne\.jp$/)){
    $pagedata=&page3;# EZweb 旧端末用の処理

} elsif (index($agent,"DoCoMo")>=0 && $host =~ /\.docomo\.ne\.jp$/) {
    $pagedata=&page0;# i-mode 用の処理

} elsif ((index($agent,"J-PHON")>=0 || index($agent,"Configuration")>=0) && $host =~ /\.jp-[ckqt]\.ne\.jp$/) {
    $pagedata=&page1;# J-SKY 用の処理

} else {
    $pagedata=&page4;# それ以外
}
byとまて

2005.12.21

[scm4のページへ][HOME]