質問 > フロント機能 > ログイン後、元いたページに戻る |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ac3 |
投稿日時: 2009/7/10 22:03
対応状況: −−−
|
新米 登録日: 2009/4/16 居住地: 投稿: 3 |
ログイン後、元いたページに戻る ログインした後、元いたページに戻るようにするにはどうすればいいでしょうか。
詳細に教えていただけると助かります。 |
AMUAMU |
投稿日時: 2009/7/10 23:11
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: ログイン後、元いたページに戻る リダイレクトの処理に修正が必要ですね
例外系を考えたり環境差違を考えるとちょっとめんどくさいところです
|
seasoft |
投稿日時: 2009/7/11 7:42
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7369 |
Re: ログイン後、元いたページに戻る URL + POSTの値をカバーするという辺りで、ある程度処理できるとは思います。
ただし、PRGパターン以外の箇所は、最後に開いた URL で何か DB あくしょんがあアクションがあると、本当にそのページに戻してよいのかという課題が残る場合も。 EC-CUBE ではありませんが、ログイン関連のページ遷移に必要だった遷移数をカウントしておいて、その数分を JavaScript で戻すという処理をしたことがあります。参考まで。
|
ramrun |
投稿日時: 2009/7/11 10:36
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: ログイン後、元いたページに戻る ひと言でログインといっても
フロントに配置したログインブロックからログインするのと MYページに入ろうとしてログインするのと 注文処理の遷移途中でログインするのとでは意味が変わってきます。 SC_View.phpにgetPrevURLメソッドがあるので、 リダイレクトのときにソレを利用するようにすれば前のページに戻れますが、 戻り先が商品一覧で複数ページの場合は↓の件も... 買い物を続けるボタンのリンク先 |
it3 |
投稿日時: 2009/9/22 18:20
対応状況: −−−
|
一人前 登録日: 2009/3/16 居住地: 投稿: 94 |
Re: ログイン後、元いたページに戻る こちらのスレッドが立ってから、時間が経っているので既に解決済みかも知れませんが、私も丁度同じような事をしていましたので、今後どなたかの参考やお役に立てればと思い載せておきます。
私の場合は、特定のページだけでもログイン後に元いたページに戻るものです。 もし、私の方法があまり良くないものでしたら、どなたかご指摘ください。 ==================================================================== 【元となるページ】 <form>の後辺りに、↓を追加。(nameやvalueは任意で。) --------------------------------------------------------- <input type="hidden" name="login_page" value="bpage" /> --------------------------------------------------------- ================================================================ 【LC_Page_FrontParts_LoginCheck.php】 function process()内の96行目辺りの ------------------------------------------------------ if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) { $this->sendRedirect($this->getLocation(URL_DIR, array(), false)); exit; ------------------------------------------------------- を↓に -------------------------------------------------------- if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) { if($_POST['login_page'] != "bpage"){ $this->sendRedirect($this->getLocation(URL_DIR, array(), false)); }else{ $this->sendRedirect($this->getLocation($_POST['url'], array(), false)); } exit; ============================================================== 私もEC-CUBEを熟知しているわけではありませんので、環境によっては動作が変わるかも知れません。あくまでも同じような事をされようとする方の参考になればと思います。 ※追記 こちらは、EC-CUBE公式ガイドブック カスタマイズ編での ”ログインフォームを自由に配置する”を行った上でのものです。 ************************************** EC-CUBE 2.3.4 DBサーバ MySQL PHP 5.1.6 |
seasoft |
投稿日時: 2009/9/23 2:20
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7369 |
Re: ログイン後、元いたページに戻る 最近コードを査読していて気づいた別のアイディアです。
EC-CUBE には、以前に開いたURLをセッション変数に保持する仕組みが用意されています。これを利用すれば、案外簡単に実現できるかもしれません。 多分、ログイン絡みの処理を「以前に開いたURL」として記録しないように改訂するだけで、何とかなりそうな予感もします。 ・・・とはいえ、この機構、画面遷移によっては、現状で不具合が発生するので、これ以上複雑なことをさせると余計に厄介なことになるかもしれませんが・・・
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |