メイン 一般的な話題(General)
Docomoとセッション | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| hoge | 投稿日時: 2007-9-26 17:22 |
Baker スタート ![]() ![]() 登録日: 2007-6-17 居住地: 投稿: 9 |
Docomoとセッション docomo の携帯では
というようなセッション用の関数は使えないのでしょうか? 現在開発中のシステムでは、ログイン認証後にIDとパスワードをセッションに保存するという処理を行い、 このセッションの有無によって、ログイン前後の制御を行っています。 auやsoftbankでは認証後のページが遷移しますが、docomoでは認証後にセッションを確認されて弾かれてしまいます。 認証後どのページにおいても、ID、パスワードなどの情報を持ち回せるようにするにはどのような方法があるのでしょうか? |
| hide99 | 投稿日時: 2007-9-26 19:09 |
一人前 ![]() ![]() 登録日: 2007-7-2 居住地: 投稿: 106 |
Re: 携帯サイトDocomoとセッション こんにちわ。ちょうど、今僕も携帯サイトを作っています。
基本的にcakephpに限らず、 「携帯サイトはクッキーを使用したセッションを使えない」 というのが前提です。 おそらくauやsoftbankでも古い機種だとセッション使えないんじゃないでしょうか。 a解決策: 多分これで大丈夫というのを書いてみますね。 ただドコモ携帯もってないのでテスト段階ですけど。 手順 1 http://www.1x1.jp/blog/2006/09/cakephp_mobile.html を参考に m/でアクセスした場合はモバイル用のビューを表示させる 手順 2 app/config/core.php の以下の設定を修正 手順 3 app/config/ フォルダ内に usersession.php を作成 手順 4 コントローラーが読み込まれたら、モバイルからのアクセスか判定する ○モバイル用ビュー これで http://hogehoge.com/m/ (モバイルからのアクセス前提)にアクセスすれば以下のようになる はず です。 ・なんとびっくり携帯からのアクセスは shift-jis に勝手にしてくれて 入力は utf-8 にしてくれる ・セッションはクッキーを使わないのでセッションIDを埋め込む形で処理できる。 ・必要であれば 手順3 のところで モバイルからのアクセス時のみ、ini_set('session.use_trans_sid', 1); とすればいちいち session_id を埋め込む必要なし。 ちょっと見づらくなりましたが、いかがでしょうか ![]() 2007/12/04 リダイレクトメソッドもうまく動くように追記しました! |
| hide99 | 投稿日時: 2007-12-5 22:08 |
一人前 ![]() ![]() 登録日: 2007-7-2 居住地: 投稿: 106 |
携帯サイト作成時の注意 ■ $this->layout = "ajax"; 使用時の注意
モバイルサイトを作っているときにコントローラー側で $this->layout = 'ajax'; があると notfound になりますので、 views/layouts/mobile/ajax.thtml を作っていれておいてあげると正常に表示できるようになります ♪■ POSTデータ使用時の注意 これは僕だけでしょうか。POSTデータを送るとき、 というのが自然についているのにも関わらずセッションを引き継ぐことができませんでした。 ということで強引に という風に action 先にセッションを入れてやりました |
| hide99 | 投稿日時: 2007-12-17 17:38 |
一人前 ![]() ![]() 登録日: 2007-7-2 居住地: 投稿: 106 |
携帯サイトで $this->flash 振り分け $this->flash を使っていると携帯サイトもPCサイトも一緒のページが表示されてしまいます。
そこで、携帯ページのときは携帯ページ用の flash を表示させてしまおう! ということです。 手順1 cake/app_controller.php 手順2 cake/libs/controller/controller.php 618行目あたり flash メソッド を変更 これでモバイルだったら views/layouts/mobile/flash.thtml が表示されるようになります よって layouts/mobile/ フォルダに以下のコードを flash.thtml として保存しておきます これでOK! ちなみに携帯版はreflesh タグが使えないかもしれないんで自動ジャンプはしないようにしてます! ![]() |
| patorash | 投稿日時: 2008-6-19 0:10 |
Baker スタート ![]() ![]() 登録日: 2008-2-16 居住地: 愛媛県 投稿: 11 |
携帯サイトで $this->cakeError CakePHP1.1でPCサイトの携帯対応を行っているのですが、
hide99さんの投稿がとても参考になりました。 ありがとうございました cakeErrorを起こした場合に、PC用エラー画面が表示されてしまったので以下のようにしたらできました。 app/error.phpを作成し、 |
| cyndy | 投稿日時: 2009-1-20 16:23 |
Baker ユーザ ![]() ![]() 登録日: 2008-5-14 居住地: 投稿: 33 |
Re: 携帯サイトで $this->cakeError 1.1を使用しています。
patorashさんのように携帯用の404エラーページが表示されるようにしたいので、 if(defined('MOBILE')){ $this->controller->viewPath = 'mobile_errors'; $this->controller->webservices = 'Mobile'; } と、error.php に書いてみました。 が、本当に「ページが見つかりません(404)」と携帯のメッセージが出てしまい、困っております。 views/errors/error404.thtmlではなく、 携帯用の内容にしたいので views/mobile_errors/error404.thtmlを作成しました。 さらに、layoutを携帯用の views/layout/mobile/default.thtmlにしたいのですが、そうなりません。 $this->controller->webservices = 'Mobile'; を指定しないと、views/mobile_errors/error404.thtmlが表示されるのですが、layoutはPC用の views/layout/default.thtmlになります。 なにかよいヒントありましたら教えてください。 |
| cyndy | 投稿日時: 2009-1-20 16:54 |
Baker ユーザ ![]() ![]() 登録日: 2008-5-14 居住地: 投稿: 33 |
Re: 携帯サイトで $this->cakeError 自己解決というか、
webservices がなぜ設定できないのかわからないままで、 携帯用エラーページのときに、携帯用のviews/layouts/mobile/default.thtml のレイアウトを使用できないのかもわからないままなのですが、 とりあえず、 携帯エラーページ用レイアウト views/layouts/mobile_errors.thtml を作成し error.php に $this->controller->layout = 'mobile_errors'; としました。 以上です。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |





