重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

はじめまして

HTML、PHPで携帯サイト構築をしているのですが下記点でこまっています。

【やりたいこと】
サイトにログイン機能やユーザー登録などの機能を持たせない(仕様です)で遷移してきたユーザーを判別したい。

【問題点】
PEARの携帯用のライブラリを使用してユーザーの機種情報を取得して、判別しています。

たとえば某ぐるめなびサイト(以下、ぐるなび)のように、遷移時にトップページですでにこちらが誰であるかを認識できるようにするにはどうすればいいのかでなやんでいます。

もっというとトップページの前にページを設けてそこで

<form action="hoge" utn>
<input type="submit">

と,すれば値の取得はできるのですが、そのあとに直接トップページに遷移されていまうと結局、機種情報の取得ができせん。

こんな方法がある、又参考URLでも結構ですのでご助言お願いいたします

A 回答 (4件)

やはり、僕は求めてる回答を勘違いしてるみたいですね。


ユーザーを特定できセッション管理もできているなら、

・遷移ページ(全ページ)でセッションの維持を確認
・セッション変数からログイン状況を把握
・未ログインユーザーならログインページへ遷移(遷移無しのログインも可)
 └ログイン状況をセッション変数へ格納し元ページへ再遷移
・セッション変数から判断した構成でページを作成

のようにし、ユーザーの管理をすれば、どのページでもユーザー状況(ステータス)を確認・利用できませんか。

あくまで、僕の場合ですが、ユーザーステータスを以降ログイン時にも有効にしたいため、セッションID以外セッション変数は使わずsqlとユーザーIDで管理してますが、基本的な考え方は同じです。
また、ユーザーのログイン・セッション維持をクラス化して別ファイルのphpを作り、全ページにincludeしこの管理をさせてます。

これで答えになっているかまだ不安ですが。^-^
    • good
    • 0

docomoは多くのIPをそのつどdocomo側の都合で変化させます。

このため、送り出し側サーバーは請求元サーバーを特定できず、セッション維持ができません。
回避法のざっくりした説明でよければですが。ページ遷移する時のURLにgetでセッションIDを付加して(URL?セッションID=ID番号)移ったページでセッションを維持させます。通常のhtmlフォームで$_GET["~"]などとすると出てくる値の受け渡しと同じです
携帯ではセッション開始ごとIDも含めたURLが変化するため、I-Mode開始ごと参照済みサイトなのに色が未参照になるのはこのためです。

細かい利用法などは下記などはを参考にしてくださいね。
http://www.yc.tcu.ac.jp/~yamada/doc/php/0802.html
「php セッション 携帯」などで検索すると色々出てくると思いますよ。

上記解説は僕の個人的な解釈ですので、「それは違うよ」などのつっこみは勘弁してくださいね。あくまでも参考になればと言うことで、よろしく願います。

この回答への補足

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

なるほど

たしかにセッションはクッキーにつめられない(クッキーが使えない)ので

セッションIDに関してはセッションスタート後に取得してそれをリンク先のパスに

http://hogehoge/hoge.php?PHPSESSID="ここに取得したセッションID"

という具合に明示的に指定して画面遷移をしています

>つっこみは勘弁してくださいね。
いえいえ、お聞きしてる身分でそれはないですよww

2度にわたりご助言ありがとうございました

補足日時:2009/04/14 17:18
    • good
    • 0

求めてる回答になっているのかちょっと解りませんが。



遷移
通常遷移の維持はセッションを利用するのが一般的だと思います。遷移してもユーザーを特定できるので、遷移維持で機種情報に頼る必要は無いと思いす。ドコモはサーバーのipアドレスがパラパラ変わってしまうので、セッション維持に工夫がいりますが可能です。

ログイン
サブスクライバーを利用しているサイトをよく見かけます。僕もこの方法で構築しています。ただ、これもドコモはサブスクライバーの送信に携帯利用者の許可を求めますので、ドコモログインだけ別途作る必要があります。(注意!au/softbankもサブスクライバー停止機能があります)
    • good
    • 0
この回答へのお礼

サブクライバーとは、、?

調べてみました

多分、固体識別情報のこと、、なのかな。。

これに関してはまず、キャリアがドコモしか考えていないので

ドコモIDもしくはカードID、機種情報とも、プライマリーな情報があるのでそれを使用するつもりです

セッションも利用するつもりなのですが

>ドコモはサーバーのipアドレスがパラパラ変わってしまうので、セッション維持に工夫がいりますが可能です。

ここなんですが、IPが変わってしまうとセッションが維持できないのでしょうか?

基本的なことなのですかね。。

うむむ、、

セッションIDと機種情報で毎回チェックして

画面遷移時にパス+セッションIDで作るつもりだったですがhige_mario様がおっしゃる懸念点が浮かびません。。

もし、よろしければ詳しく指摘していただけるとありがたいです

こちらでも調べて判明すれば書き込みさせていただきます

ご回答ありがとうございました

お礼日時:2009/04/12 18:27

>> こんな方法がある、・・・・



・ログインページを用意する
・正常にログインしたら、セッション(またはcookie)に情報を記憶する
・ログインページ以外で、セッション(またはcookie)に情報が無い場合は、ログインページにリダイレクトする。

では如何でしょう
    • good
    • 0
この回答へのお礼

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

まず、当方が携帯サイトに限定されているためクッキーの利用はなしなんです。

でセッションか画面にhiddenでうめこんで値を持つ

常に持ちまわって画面遷移毎にチェック

正規ルートでなければ誘導
ようするに不正な(こちらの指定したページ以外からの遷移)に対応するため遷移元のページを取得して、不正な遷移ならトップページに。

そして正規の画面遷移を行ってもらってから、、

というながれは検討、提案したのですが却下でした

ただ、やはりmpxさんのおっしゃる対応が正論だし問題ないと思うのですが。。

と、愚痴っても仕方ないですね

迅速で端的なコメントありがとうございました。

お礼日時:2009/04/10 11:32

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