2012年2月10日金曜日

神の郷温泉


小林市の神の郷温泉(旧紀之島温泉)はお気に入りの温泉の一つだ。
とくに寒い日冬の日でも脱衣所が暖かく、浴場も暖かいのでありがたい。湯温も丁度よく、ゆっくりと浸かることができる。


炭酸泉なので、飲んでもよい。玄関横にはお湯汲み場があり、温泉が常時流れている。おもちぃ帰りは無料なのがうれしい。

温泉に入るときはもちろん、入らない時も近くを通った時には立ち寄ってこの炭酸泉を頂いて帰る。そのまま飲んでもよし、料理に使ってもよし、これで炊いたご飯は美味しいですよ。

2012年2月6日月曜日

iモードIDを取得できた

久しぶりにパソコンネタです。


今、あるツールを開発しています。
携帯電話で利用することが前提なのですが、接続時の認証や携帯電話からのデータ入力も必要なのでですが、携帯電話でユーザ名とパスワードを入れるのはとても面倒です。←これは個人的な感想です。


そこで、携帯電話からのデータ入力をできるだけ省力化したい訳で、まずは認証にはユーザ名とパスワード方式ではなく、各携帯から送られてくる個体識別情報を利用しようとしています。


PHPでスクリプトを書いていますが、
ソフトバンクの場合は$_SERVER['HTTP_USER_AGENT']、auの場合は、$_SERVER['HTTP_X_UP_SUBNO']で、個体識別情報を含むデータを入手できますが、

ドコモの場合は、なかなか面倒でした。
URLに?guid=ONを付加すれば、$_SERVER['HTTP_X_DCMGUID']で取れるはずなので、どうやって?guid=ONを付けるかを考えました。

インターネットで調べると、フォームを使って付加する方法が紹介されてありましたが、これは、ユーザに送信ボタンを押す操作を求めるので、却下。

header('Location: ./****.php?guid=ON');
これを使えば良いようで、次のようなスクリプトを書きました。

$guid=$_GET['guid'];
if(substr($_SERVER['HTTP_USER_AGENT'],0,6)=="DoCoMo" and $guid==""){
    header('Location: ./****.php?guid=ON');
}

ドコモの場合は、$_SERVER['HTTP_USER_AGENT']の先頭にDoCoMoの6文字が入っています。また、?guid=ONの付かないURLにアクセスした場合は、$guidにはデータは入っていませんので、?guid=ONの付いたURLに移動します。これで、$_SERVER['HTTP_X_DCMGUID']を取得できるはずでしたが、結果はダメ。

問題は2つありました。次のスクリプトに修正したら、ちゃんと取得できました。

$guid=$_GET['guid'];
if(substr($_SERVER['HTTP_USER_AGENT'],0,6)=="DoCoMo" and $guid==""){
    header("Location: ./****.php?guid=ON");
    exit;
}


  1. 引用符は’(シングルコーテション)ではなく”(ダブルコーテーション)を使うこと。
  2. スクリプトの最後にexitを書くこと。
シングルコーテションを使うと、URLが****.php?guid=ONではなく、****.php?guid="ON"になってしまいました。

exitを書かないと、ここでは省略してありますが、下部のスクリプトを実行していまいました。新しいページに移動するので関係ないと思っていましたが、大きな誤りでした。

わかってしまえば何でもないことですが、これで丸一日潰れてしまいました。この問題を解決するために多くの方に携帯電話からテストページへのアクセスをお願いしました。ご協力ありがとうございました。