/** * 会員登録に必要なSQLパラメーターの配列を生成する. * * フォームに入力された情報を元に, SQLパラメーターの配列を生成する. * モバイル端末の場合は, email を email_mobile にコピーし, * mobile_phone_id に携帯端末IDを格納する. * * @param FormParam $objFormParam * @access private * @return $arrResults */ public function lfMakeSqlVal(&$objFormParam) { $arrForm = $objFormParam->getHashArray(); $arrResults = $objFormParam->getDbArray(); // 生年月日の作成 $arrResults['birth'] = Utils::sfGetTimestamp($arrForm['year'], $arrForm['month'], $arrForm['day']); // 仮会員 1 本会員 2 $arrResults['status'] = CUSTOMER_CONFIRM_MAIL == true ? '1' : '2'; /* * secret_keyは、テーブルで重複許可されていない場合があるので、 * 本会員登録では利用されないがセットしておく。 */ $arrResults['secret_key'] = Application::alias('eccube.helper.customer')->sfGetUniqSecretKey(); // 入会時ポイント $CONF = Application::alias('eccube.helper.db')->getBasisData(); $arrResults['point'] = $CONF['welcome_point']; if (Application::alias('eccube.display')->detectDevice() == DEVICE_TYPE_MOBILE) { // 携帯メールアドレス $arrResults['email_mobile'] = $arrResults['email']; // PHONE_IDを取り出す $arrResults['mobile_phone_id'] = MobileUserAgent::getId(); } return $arrResults; }
/** * 携帯のIDを登録する. * */ public function updatePhoneId() { $this->setValue('phone_id', MobileUserAgent::getId()); }
/** * 携帯端末IDを使用して会員を検索し、パスワードの照合を行う。 * パスワードが合っている場合は会員情報を取得する。 * * @param string $pass パスワード * @return boolean 該当する会員が存在し、パスワードが合っている場合は true、 * それ以外の場合は false を返す。 */ public function getCustomerDataFromMobilePhoneIdPass($pass) { //docomo用にデータを取り出す。 if (MobileUserAgent::getCarrier() == 'docomo') { if ($_SESSION['mobile']['phone_id'] == '' && strlen($_SESSION['mobile']['phone_id']) == 0) { $_SESSION['mobile']['phone_id'] = MobileUserAgent::getId(); } } if (!isset($_SESSION['mobile']['phone_id']) || $_SESSION['mobile']['phone_id'] === false) { return false; } // 携帯端末IDが一致し、本登録された会員を検索する。 $sql = 'SELECT * FROM dtb_customer WHERE mobile_phone_id = ? AND del_flg = 0 AND status = 2'; $objQuery = Application::alias('eccube.query'); @(list($data) = $objQuery->getAll($sql, array($_SESSION['mobile']['phone_id']))); // パスワードが合っている場合は、会員情報をcustomer_dataに格納してtrueを返す。 if (Utils::sfIsMatchHashPassword($pass, $data['password'], $data['salt'])) { $this->customer_data = $data; $this->startSession(); return true; } return false; }