※ ChatGPTを利用し、要約された質問です(原文: 予約システムを構築しております。レベルは日曜プログラマーから漸く脱し)
予約システム構築中の問題について
このQ&Aのポイント
予約システムの構築中、携帯の識別番号を取得する際に問題が発生しています。
現在の環境は、サーバPCでXPを使用し、xampp 1.7.1(PHP5.2.5 Apache2.0 MYSQL5.0)を利用しています。
携帯の識別番号を取得するために、Net_UserAgent_Mobileという関数を使用していますが、DOCOMOの場合は取得できず、ソフトバンクでは取得できるようです。
予約システムを構築しております。レベルは日曜プログラマーから漸く脱し
予約システムを構築しております。レベルは日曜プログラマーから漸く脱した程度です。携帯を識別してデータベースに値を書き込み、そのIDを用いて予約したり取消したり、簡単ログインしようと思っております。PCからのアクセスは、問題なく動くようになりました。
携帯の識別番号を得るところで躓いています。
環境は、
サーバPC XP
xampp 1.7.1 (PHP5.2.5 Apache2.0 MYSQL5.0 )
ブラウザ FF 3.5.8
携帯は 812sh (ソフトバンク)とドコモのムーバ(比較的新しい、機種不明)
利用関数のソースコードは以下のようなものです。
function getUid(){
$agent = Net_UserAgent_Mobile::singleton();
if ($agent->isDoCoMo()) {
//$uid=$agent->getUserAgent();
$uid = $_SERVER['HTTP_X_DCMGUID'];
} elseif ($agent->isVodafone()) {
//$uid=$agent->getUserAgent();
$uid = $_SERVER['HTTP_X_JPHONE_UID'];
尚、DOCOMOの場合、SSL通信にては不可とのことでしので、SSLをやめましたが取得できません。
また、ソフトバンクでは、コメントアウトした$uidを、取得できます。
print("uid=$uid\n");
の結果は、
uid=
結果が得られていないようです。
エラー表示等は出ません。(自分で書いたエラー表示だけです 「uidが無いならエラー」)
ソフトバンクについては、コメントアウトした$uidは
$uid= SoftBank/1.0/812SH/SHJ001/SN9999999........ (FFでアクセスしましたが、携帯でも得られます)
と得られております。
ウェブで色々検索してみましたが、解決しません。
尚、質問に不慣れですので、どのような情報が必要なのか、わかりませんので、補足してゆきます。足りない点があればご指摘ください、よろしくお願いいたします。
お礼
#2さんのアドバイスにてダンプさせましたところ、ソフトバンクの実機にて正常取得できました。 頭がこんがらがっておりまして、申し訳ありません。実機とFFを使って試験しておりましたので、SSLで繋いでいたようです。FFは、当然にもHTTP_X_JPHONE_UIDの取得はできませんね、早とちりというか、頭の整理できていませんでした。 ソフトバンク実機でSSL解除して通信しましたところ、HTTP_X_JPHONE_UIDを取得できました。 ドコモ携帯を持っていないのでドコモはまだ未確認ですが、近日試してみようと思います。 お陰様にて、前に進みそうです。ほんとうにありがとうございました。
補足
申し訳ありません、間違ってコピーしておりました。 >> $agent = $_SERVER['HTTP_USER_AGENT']; >> print("agent=$agent<br>"); >> を実行してみましたところ、値が入りませんでした。(ドコモ、ソフトバンク共通) は $agent = $_SERVER['HTTP_X_JPHONE_UID']; と $agent = $_SERVER['HTTP_X_DCMGUID']; です。 ですので、 $_SERVER['HTTP_USER_AGENT']; は取得できております。