CJ Club TOP
/
あいしてるじぇい
/CGI作成上、使用上の注意
CGI作成上、使用上の注意
■ i-modeの注意
i-modeはContent-length(表示するもののファイルサイズ)の出力が必須です。
パラメータにコロン(:)、スラッシュ(/)を使用する場合http://〜のパスで書かないとP501iでは正常に動作しません。
■ J-Skyの注意
J-Skyは機種によってメソッドがGETしかサポートされていないようです。
J-SkyはCGIで画像を表示する際注意が必要です。
J-Skyの一部の機種ではフォーム分しか入力できないようです。
J-Skyの一部の機種では<input>の name 属性にアンダーバー(_)が使えないようです。
■ 共通
カウンタについての注意
i-modeの注意
■ i-modeはContent-length(表示するもののファイルサイズ)の出力が必須です。
i-modeでは、CGI出力時のバイト数を Content-length で出力しなければなりません。
例)
$length = length($content);
print "Content-type: text/html\n";
print "Content-length: $length\n\n";
print "$content";
exit;
■ パラメータにコロン(:)、スラッシュ(/)を使用する場合http://〜のパスで書かないとP501iでは正常に動作しません。
例)
○:<a href="http://www.cj-c.com/cgi-bin/bbs.cgi?time=2000/11/23">リンク</a>
×:<a href="./cgi-bin/bbs.cgi?time=2000/11/23">リンク</a>
J-Skyの注意
■ J-Skyは機種によってメソッドがGETしかサポートされていないようです。
J-Skyのパケット対応機、もしくはステーション対応機はPOSTにも対応していますが両非対応機ではGETしか使えません。
例)
<form action="***" method=GET>
:
</form>
■ J-SkyはCGIで画像を表示する際注意が必要です。
J-PHONEの携帯にはいわゆる「ステーション対応機」と「ステーション非対応機」とがあります。
前者は最近の機種、後者は少し前の機種となります。<img>タグの中でのCGIは対応機/非対応機で違いがあるようです。
[対応機]
<img>タグの中で hoge.cgi?1 と書くことが可能。ただし、Locationヘッダで画像ファイルを
指定しなければいけない。Content-Type を返して画像ファイルの中身を送るのではダメ。
[非対応機]
<img> タグの中で hoge.cgi?1 と書くことができない。拡張子が .cgi となっているので
画像ファイルとして認識されない。
ただし、CGI の拡張子を .png とすることで対応機/非対応機共に画像を表示することができるようにります。
これはJ-SkyウェブがContent-Typeではなく拡張子を見てファイルの種別を判別しているというイマイチな仕様なためです。
しかし、 .png という拡張子をCGIとして扱えるかどうかはサーバの設定によりますのでこれは
どこでも使える方法というわけではありません。したがって、画像が表示されるかどうかは以下のようになります。
CGIの名前
対応機
非対応機
hoge.cgi?1
○
× (*1)
hoge.png?1 (*3)
○
○ (*2)
(*1) Location ヘッダで画像ファイルを指定しなければならない
(*2) ファイルの中身を直接送っても大丈夫
(*3) サーバによって使用できないところもあり
古い機種にも対応するため、 .png をCGIとして扱えるならそれが一番ですが、それが無理な場合、
Locationヘッダで画像を指定する方法でCGIを書き、最近の機種でしか画像が表示できないことに我慢するしかないようです。
*)表示されなくてもカウントアップは正常に行われます。
(
有賀
さんからの情報をほぼ引用させていただきました。ありがとうございますm(_ _)m)
■ J-Skyの一部の機種ではフォーム分しか入力できないようです。
J-Skyの一部の機種ではフォームのサイズ分しか入力できないものがあるようです。この場合 maxlength を設定することで回避できるそうです。
例)
<input type="text" name="***" size="16"> → 半角16文字しか入力できない
<input type="text" name="***" size="16" maxlength="50"> → 半角50字まで入力できる
これは <input> だけで <textarea> は問題ないようです。
■ J-Skyの一部の機種では<input>の name 属性にアンダーバー(_)が使えないようです。
例)
○:<input type="text" name="commentform" ...>
×:<input type="text" name="comment_form" ...>
共通
■ カウンタについての注意
CGI、SSIを使用すれば普通にカウンタを利用できますが、画像カウンタの場合には注意が必要です。i-mode/ドットiはGIFファイルが使用できるのでうちのカウンタも利用できます、が、gifcat.plは連結処理にGIFアニメーションを利用しているためGIFアニメーション未対応の端末では、1番左の桁の数字しか表示されません(カウントアップは正常にされます)。
そして、PNG形式には対応していないためJ-Sky利用できません。
1番良いのはSSIを用いたテキストカウンタか、CGIでトップページを作る形式のテキストカウンタです。もしくは1桁1桁画像を出力するCGIでもOKでしょう。→
携帯自動判別カウンタ(PG Counter)
*)
J-Skyの画像表示の際の注意
作るのが面倒な人は
CGI
/
i-mode J-Sky Doti
のCGIをぜひどうぞ(^^
□
BACK