バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 1日の会員登録者数の制限をかけることは可能でしょうか

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mochizuki
投稿日時: 2017/4/17 10:39
対応状況: 確認中
新米
登録日: 2017/3/14
居住地:
投稿: 1
1日の会員登録者数の制限をかけることは可能でしょうか
▼テンプレート
[EC-CUBE]
2.13.5

[現象]
一度に大量の会員登録がされてしまいました。
そのため1日の会員登録数の制限をかけたいです。
IPごとではなく全体でです。

何か方法はありますでしょうか。
よろしくお願いいたします。
468
投稿日時: 2017/4/17 11:47
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 1日の会員登録者数の制限をかけることは可能でしょうか
制限される数は固定値で問題無いのでしょうか?
管理画面で変更できるようにする場合は、その情報を変更できる画面やテーブルなどを用意する必要があると思いますので、
それなりに手を加える必要が出てくると思います。

プラグイン化せずに直接カスタマイズするのであれば、
/data/class/pages/entry/LC_Page_Entry.phpのactionメソッド内に判定処理を追加すればいいのではないかと思います。

dtb_customerにcreate_dateカラムがありますので、
これを条件に件数をカウントさせれば、その日の会員登録件数をカウントできそうな気がします。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

yuh
投稿日時: 2017/4/19 1:05
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: 1日の会員登録者数の制限をかけることは可能でしょうか
ざっくりと書いたので動作するかはわかりませんが、
LC_Page_Entry_Ex.phpに下記のコードを追加でできると思います。
//一日の最大会員登録数
//エラー時のテンプレート
部分は変更する必要があります。

    function action(){
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $checknum = 10 ;//一日の最大会員登録数
        $query = "
        SELECT
            CASE
                WHEN
                    coalesce((
                        SELECT
                            COUNT(*)
                        FROM
                            (
                                SELECT 
                                    create_date 
                                FROM 
                                    dtb_customer 
                                ORDER BY 
                                    customer_id DESC 
                                LIMIT 10
                            ) as a
                        WHERE 
                            create_date > date_trunc('hour',NOW())
                    ),0) < ?
                THEN    ?
                ELSE
                    0
            END
        ";
        $check = $objQuery->getOne($query,array($checknum,$checknum));
        if($check == 0){
            $this->tpl_mainpage = 'entry/〇〇〇.tpl';//エラー時のテンプレート
            $this->tpl_title    = '会員登録(会員登録制限)';
            return;
        }

        parent::action();
    
    }


----------------


http://ec-lab.net/

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.