> フロント機能 > コントローター外でセッション情報を受け取ることができるのか? |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
boss12 |
投稿日時: 2016/4/2 19:16
対応状況: −−−
|
常連 登録日: 2016/2/17 居住地: 投稿: 53 |
コントローター外でセッション情報を受け取ることができるのか? eccube3.0系です。
コントーローラー外でセッションを受け取る方法はあるのでしょうか? もしある様でしたら方法を教えていただきたいです。 宜しくお願いいたします。 |
ikemoto |
投稿日時: 2016/4/4 22:19
対応状況: −−−
|
一人前 登録日: 2015/10/2 居住地: 投稿: 79 |
Re: コントローター外でセッション情報を受け取ることができるのか? 「コントローラーの外」の解釈に色んなパターンありますので
具体的に何をしたくて…を書いた方が解答つけやすくなると思います。 多分、↓の2パターンのどちらかの事かと思うのですが… 別途処理をコントローラー外に切り出して、 コントローラー内からそれを呼び出す例だと src/Eccube/Service/CartService.php src/Eccube/Controller/ShoppingController.php …辺りが参考になるし、 コントローラーを呼び出す前とか後に セッションを受け取って何かしたい場合は プラグインで割り込みするという方法もあります。 この場合自力でプラグインを立ち上げる必要がありますので http://www.ec-cube.net/plugin/ …にあるプラグイン仕様書を見ながら どこのフックポイントに対して割り込みかけたいのかを 確認しつつ作業していけば出来るかと。 |
boss12 |
投稿日時: 2016/4/5 13:41
対応状況: −−−
|
常連 登録日: 2016/2/17 居住地: 投稿: 53 |
Re: コントローター外でセッション情報を受け取ることができるのか? ありがとうございます。
したいことは、マイページ>購入一覧ページで、とある作成したボタンをクリックするとデータベースにユーザーのIDが挿入されるという処理で、 オブジェクト指向があまりできないので、フラットなphpでできないかと考えました。 具体的には、購入一覧ページに<form>でボタンを作成し、フォームの送信先phpファイルでユーザーIDをデータベースのテーブルに挿入し、header locationで購入一覧ページに戻すということをしたいです。 購入一覧ページでユーザーIDを<inputのhiddenで入れても実現可能ですが、それだとセキュリティー的に怪しいと感じています。 なので、formの送信先phpファイルでセッション(ユーザーID)を取り出し、挿入したいと思っています。 |
ikemoto |
投稿日時: 2016/4/6 4:02
対応状況: −−−
|
一人前 登録日: 2015/10/2 居住地: 投稿: 79 |
Re: コントローター外でセッション情報を受け取ることができるのか? 外ってそういう話でしたか。
すみません、それはフレームワークを使うというルールから逸脱してしまうので、積極的にアドバイスしがたいものが…。 …言える事と言えば、EC-CUBE3に於いて入口となるのはindex.php(開発時だとindex_dev.phpですが)で、最初に宣言されている $appに情報が集約されていくので、(基本的には)各工程で$appさえ参照できればセッション情報もそこから取れる、ということでしょうか… ですから、コントローラー外からセッション情報を取る自体に関してはindex.phpを通った$appさえ取れれば可能、ただし、フレームワークを経由しなかった場合、各工程を通る際に$appに対して行ってる処理をスルーしているわけなので、正常な動作をしてくれる保証はないかも?? |
boss12 |
投稿日時: 2016/4/6 17:20
対応状況: 解決済
|
常連 登録日: 2016/2/17 居住地: 投稿: 53 |
Re: コントローター外でセッション情報を受け取ることができるのか? なるほど、、ありがとうございます。
やはり、ECCUBEの流儀に従うべきなのですね。 難しそうですが、正しいやり方で行えるよう勉強したいと思います。 アドバイスありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |