バージョン選択

フォーラム

メニュー

オンライン状況

56 人のユーザが現在オンラインです。 (47 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 56
もっと...

サイト内検索

質問 > フロント機能 > 会員専用にするには

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2007/7/20 3:17
対応状況: −−−
会員専用にするには
登録した会員のみサイト全体を閲覧、商品購入ができるようにしたいのですが
どのように行えばよろしいでしょうか?

index.phpをmypage/login.phpと置き換えて最初に必ずログインを
行うようにして、他の各ページにログインされているかの判定処理
を入れるのだと思ってるのですが正しいでしょうか?
また、そのようにした場合直接ページにアクセスするとエラーページが
でてきますが、これをログインページにしたいです。
mi-yan
投稿日時: 2007/7/20 17:23
対応状況: −−−
常連
登録日: 2007/6/4
居住地: 東京
投稿: 54
Re: 会員専用にするには
ピンポイントの回答ではありませんが…

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=550&forum=6

 ↑
ここの記事は参考なりますでしょうか?

「ログインしていないと書き込みボタンを表示しないようにする」方法について書かれているので、これを手がかりに全ページを対応していけばできそうですが…
ちょっと大変そうですね。


----------------
EC Orangeもよろしくお願いしますm(_ _

ゲスト
投稿日時: 2007/7/20 18:28
対応状況: −−−
Re: 会員専用にするには
質問した者です。

アドバイスありがとうございます。
mypage/index.phpを参考にしてTOPのindex.phpに次のコードを入れたら
うまく行ったように見えました。

$objCustomer = new SC_Customer();
if(!$objCustomer->isLoginSuccess()) {
header("location: ./mypage/login.php");
}
(以下今までの処理)

これを認証必須のページのphpに追加すればいいのかなと思ってますが
どうでしょうか?

shopping/deliv.phpを見るともっと複雑そうに見えるんですよね。。
ゲスト
投稿日時: 2007/12/9 15:32
対応状況: −−−
Re: 会員専用にするには
こんにちは。
私が現在準備しているサイトはログインした会員のみ価格を表示させるものを考えていたのですが、
会員がログインしないとショップの中に遷移できないということも検討したいと考えています。
できればindex.phpやその他のたくさんのphpに記述するのではなく、共通で使ってい
るphpに記述したいと考えているのですが、どこに記述すればいいのかわかりません。

LC_Page.phpが色んなphpから呼ばれているようなので、LC_Page.phpの「function
process」の中に以下の記述をしたのですが何も反応しません。

$objCustomer = new SC_Customer();
if(!$objCustomer->isLoginSuccess()) {
header("location: http://www.サイトのドメイン/mypage/login.php");
}

きっと見当違いのことをしているような気がするのですが、どなたかこのようなことを
試した方がいらしたらアドバイスをいただけると助かります。

よろしくお願いいたします。
adachi
投稿日時: 2007/12/10 23:15
対応状況: −−−
EC-CUBE開発チーム
登録日: 2007/2/14
居住地: 大阪
投稿: 93
Re: 会員専用にするには
開発チームの足立です。

LC_Page.phpのprocess()はLC_Page_***内ではよばれないので、
LC_Page.phpのinit()の方に記述してみてはどうでしょう。

ただ、単に記述するだけでは管理画面でもフロント画面に飛ばされてしまうので、
下のように管理画面は除くようにするといいかと思います。

if (!preg_match('|/admin|', $_SERVER['PHP_SELF']
&& !$objCustomer->isLoginSuccess()) {
header("location: http://www.サイトのドメイン/mypage/login.php");
}

ちゃんと検証できてないのでうまく動くか分かりませんが、参考まで。
よろしくお願いいたします。
ゲスト
投稿日時: 2007/12/11 18:16
対応状況: −−−
Re: 会員専用にするには
アドバイスをどうもありがとうございました。
init()内に記述したらLC_Page_***内から呼ばれるようになりました。
が、エラーになってしまいました。

「data/class/pages/LC_Page.php」の「function init()」を以下のように修正しました。
function init() {
   $objCustomer = new SC_Customer();
   if (!preg_match('|/admin|', $_SERVER['PHP_SELF']) && !$objCustomer->isLoginSuccess()) {
      header("location: http://www.サイトのドメイン/mypage/login.php");
   }
}


修正後、Firefoxで開こうとすると以下のエラーとなります。

「このアドレスへのリクエストに対するサーバのリダイレクト設定がループしています。」

IE7のときはずっと接続しようとしたままの状態になってしまいます。

試しに

function init() {
   print "test";
}


としてみると、ページの一番上と各ブロックの上に「test」の文字が出力されました。
ということは上の修正の方法では何度もログイン画面につなぎにいこうとしているためエラーになったのでしょうか?

1度、ログイン画面を呼んだら、その処理が2度処理が走らないようにするか「LC_Page.php」以外の部分を直したほうがいいかを調べてみたいと思います。

ゲスト
投稿日時: 2008/1/24 21:00
対応状況: −−−
Re: 会員専用にするには
このままだとloginページに飛んだときも同じチェックをしてしまうので、"login"の文字列を持っている場合も除外するようにしたらうまくいきました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,851名です
総投稿数は109,989件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.