ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/branches/stable-2.10.x/webapp/modules/ktai/do/o_login.php @ 7610

Last change on this file since 7610 was 7610, checked in by ogawa, 13 years ago

#1502:スレーブPNEで使われるdb_member_create_member()でc_member_idを返すようにした、またINSERT失敗時に不要なデータを削除する処理を加えた

File size: 2.9 KB
Line 
1<?php
2/**
3 * @copyright 2005-2007 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7class ktai_do_o_login extends OpenPNE_Action
8{
9    var $_auth;
10   
11    function isSecure()
12    {
13        return false;
14    }
15
16    function execute($requests)
17    {
18        // --- リクエスト変数
19        $c_member_id = $requests['c_member_id'];
20        $ktai_address = $requests['ktai_address'];
21        $password = $requests['password'];
22        // ----------
23       
24        @session_name('OpenPNEktai');
25        @session_start();
26        @session_regenerate_id();
27       
28        $auth_config = get_auth_config(true);
29        $auth_config['options']['advancedsecurity'] = false;
30        $auth = new OpenPNE_Auth($auth_config['storage'], $auth_config['options'],true);
31        $this->_auth =& $auth;
32        $auth->setExpire($GLOBALS['OpenPNE']['ktai']['session_lifetime']);
33        $auth->setIdle($GLOBALS['OpenPNE']['ktai']['session_idletime']);
34       
35        if (LOGIN_CHECK_ENABLE) {
36            // 不正ログインチェック
37            include_once 'OpenPNE/LoginChecker.php';
38            $options = array(
39                'check_num'   => LOGIN_CHECK_NUM,
40                'check_time'  => LOGIN_CHECK_TIME,
41                'reject_time' => LOGIN_REJECT_TIME,
42            );
43            $lc = new OpenPNE_LoginChecker($options);
44            if ($lc->is_rejected() || !$auth->login(false, true, true)) {
45                // 認証エラー
46                $lc->fail_login();
47                $p = array('msg' => '0', 'kad' => t_encrypt($ktai_address), 'login_params' => $requests['login_params']);
48                openpne_redirect('ktai', 'page_o_login', $p);
49            }
50        } else {
51            if (!$auth->login(false, true, true)) {
52                $p = array('msg' => '0', 'kad' => t_encrypt($ktai_address), 'login_params' => $requests['login_params']);
53                openpne_redirect('ktai', 'page_o_login', $p);
54            }
55        }
56
57        $c_member_id = db_member_c_member_id4username_encrypted($auth->getUsername(), true);
58        if (IS_SLAVEPNE && !$c_member_id) {
59            $c_member_id = db_member_create_member($_POST['username']);
60        }
61        if (!$c_member_id) {
62            $p = array('msg' => '0', 'kad' => t_encrypt($ktai_address), 'login_params' => $requests['login_params']);
63            openpne_redirect('ktai', 'page_o_login', $p);
64        }
65
66        // ログイン後のリダイレクト先を決定する
67        $a = '';
68        $m = 'ktai';
69        $p = array();
70
71        if ($requests['login_params']) {
72            parse_str($requests['login_params'], $p);
73        }
74
75        if (!empty($p['a'])) {
76            $a = $p['a'];
77        }
78
79        if (!empty($p['m'])) {
80            $m = $p['m'];
81        }
82
83        if ($m == 'ktai' && $a == 'page_o_login') {
84            $a = '';
85        }
86
87        $_SESSION['c_member_id'] = $c_member_id;
88        $p['ksid'] = session_id();
89
90        openpne_redirect($m, $a, $p);
91    }
92}
93
94?>
Note: See TracBrowser for help on using the repository browser.