/** * セッション情報とメディアタグ情報を取得します。 * @param string $cookieId クッキーID */ public function & getSessionAndMediaUrl($cookieId) { $db =& $this->_core->getDB(); // テーブル名取得 $table_name_session = CampaignDbTableNames::getName_Session($this->_code); $table_name_media = CampaignDbTableNames::getName_TeikeiMedia($this->_code); // SQL $sql = <<<SQL select S.session_id, S.anken_id, S.media_id, S.media_user_id, S.cookie_id, S.reg_time, S.remote_add, S.referer, S.lpo_pattern_id, S.mail, M.media_url from {$table_name_session} as S inner join {$table_name_media} as M on S.anken_id = M.anken_id and S.media_id = M.media_id where cookie_id=? SQL; $param = array($cookieId); $data =& $db->query($sql, $param); if (count($data) != 1) { throw new Action_SessionNotFountException($cookieId); } return $data[0]; }
/** * セッションテーブルへの書き込みします * @param string $cookieId クッキーID * @param array $teikei 提携メディア情報 * @return string セッションID */ public function insertDbSeesion($cookieId, &$teikei, $mob) { $db =& $this->_core->getDB(); $ankenId = $teikei['anken_id']; $mediaId = $teikei['media_id']; $mediaUserId = $this->_mediaUserId; $remoteAdd = $_SERVER['HTTP_X_FORWARDED_FOR']; $referer = $_SERVER["HTTP_REFERER"]; $name = CampaignDbTableNames::getName_Session($this->_code); $sql = <<<SQL insert into {$name} (anken_id, media_id, media_user_id, cookie_id, remote_add, referer, mob_carrier, mob_uid) values (?, ?, ?, ?, ?, ?, ?, ?) SQL; $param = array($ankenId, $mediaId, $mediaUserId, $cookieId, $remoteAdd, $referer, $mob->_carrier, $mob->_uid); $db->execute($sql, $param); return mysql_insert_id(); }
/** * セッションテーブルへの書き込みします * @param string $cookieId クッキーID * @param array $teikei 提携メディア情報 * @param string $mob モバイル端末情報 * @param string $patternId LPOパターンID * @param string $patternId オプションパラメータ情報 * @return string セッションID */ public function insertDbSeesion($cookieId, &$teikei, $mob, $patternId, &$option) { $db =& $this->_core->getDB(); $ankenId = $teikei['anken_id']; $mediaId = $teikei['media_id']; $mediaUserId = $this->_mediaUserId; $remoteAdd = $_SERVER['HTTP_X_FORWARDED_FOR']; $referer = $_SERVER["HTTP_REFERER"]; $bannerId = $this->_bannerId; $name = CampaignDbTableNames::getName_Session($this->_code); $param = array($ankenId, $mediaId, $mediaUserId, $cookieId, $remoteAdd, $referer, $mob->_carrier, $mob->_uid, $patternId, $bannerId); // オプションパラメータ $addColumns = ""; $addValues = ""; if (empty($option) == false) { foreach ($option as $key => $value) { $addColumns .= ", option{$key}"; $addValues .= ", ?"; $param[] = $value['return_value']; } } $sql = <<<SQL insert into {$name} (anken_id, media_id, media_user_id, cookie_id, remote_add, referer, mob_carrier, mob_uid, lpo_pattern_id, bid {$addColumns}) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ? {$addValues}) SQL; $db->execute($sql, $param); return mysql_insert_id(); }
/** * sessionテーブルへの更新をします。 * @param array $session セッション情報 */ public function insertLpoPageStay(&$session, $clickId) { if (empty($session['lpo_pattern_id']) == true) { return; } // クリックタイプを取得 $type = $this->getClickTypeForSession($clickId); $this->_log->debug('get.type.session.' . $type); $db =& $this->_core->getDB(); $cookieId = $session['cookie_id']; $name = CampaignDbTableNames::getName_Session($this->_code); $sql = <<<SQL insert into lpo_page_stay (anken_id, session_id, media_id, pattern_id, area_id, reg_date, reg_time, click_time, stay_second) values (?, ?, ?, ?, ?, ?, ?, ?, ?) SQL; $now = time(); // 滞在時間 $s =& $session; $staySecond = $now - strtotime($s['reg_time']); $now = date('Y-m-d H:i:s', $now); $param = array( $s['anken_id'], $s['session_id'], $s['media_id'], $s['lpo_pattern_id'], $type, $s['reg_time'], $s['reg_time'], $now, $staySecond); $db->execute($sql, $param); }
/** * 携帯ユーザIDにてセッション情報とメディアタグ情報を取得します。 * @param string $mobUid 携帯ユーザID */ public function & getSessionAndMediaUrlByMobUid($mobUid) { $db =& $this->_core->getDB(); // テーブル名取得 $table_name_session = CampaignDbTableNames::getName_Session($this->_code); $table_name_media = CampaignDbTableNames::getName_TeikeiMedia($this->_code); // SQL(同一携帯ユーザIDが複数ある場合、最新取得) $sql = <<<SQL select S.session_id, S.anken_id, S.media_id, S.media_user_id, S.cookie_id, S.reg_time, S.remote_add, S.referer, S.lpo_pattern_id, S.bid, S.mob_carrier, S.mob_uid, S.option1, S.option2, S.option3, S.option4, S.option5, M.media_url from {$table_name_session} as S inner join {$table_name_media} as M on S.anken_id = M.anken_id and S.media_id = M.media_id where S.mob_uid=? order by S.reg_time DESC, S.session_id DESC limit 1 SQL; $param = array($mobUid); $data =& $db->query($sql, $param); if (count($data) != 1) { throw new ActionMobile_SessionNotFountException($mobUid); } return $data[0]; }
/** * アクセス情報を更新する */ public function getSessionId(&$mob) { //-------------------------- // DB(セッションテーブル)からセッションID取得 //-------------------------- $db =& $this->_core->getDB(); $name = CampaignDbTableNames::getName_Session($this->_code); $param = array($mob->_uid); $sql = <<<SQL select session_id from {$name} where mob_uid=? order by reg_time desc limit 1 SQL; $data =& $db->query($sql, $param); if (count($data) == 1) { return $data[0]['session_id']; } else { return null; } }
/** * sessionテーブルへの更新をします。 * @param array $session セッション情報 */ public function countUpSession(&$session, $clickId) { // クリックタイプを取得 $type = $this->getClickTypeForSession($clickId); $this->_log->debug('get.type.session.' . $type); $db =& $this->_core->getDB(); $sessionId = $session['session_id']; $name = CampaignDbTableNames::getName_Session($this->_code); $now = date('Y-m-d H:i:s'); $sql = "update {$name} set click=?, click_time=? where session_id=?"; $param = array($type, $now, $sessionId); $db->execute($sql, $param); }
/** * 再訪フラグを取得します */ public function getRevisitFlg() { // 初期値設定 // 今回の再訪フラグ $revisitFlg = 0; // 前回の再訪フラグ $lastRevisitFlg = null; // クッキーID取得 $cookieId = $this->getCookieId(); // クッキーIDありの場合 if (empty($cookieId) == false) { $db =& $this->_core->getDB(); $code = $this->_code; // セッションレコードが存在により、再訪を判断します $name = CampaignDbTableNames::getName_Session($code); $sql = <<<SQL select cookie_id, revisit_flg from {$name} where cookie_id=? SQL; $param = array($cookieId); $sessionData =& $db->query($sql, $param); // 前回アクセス(セッションレコード)存在の場合、リピーターを設定 if (count($sessionData) == 1) { $lastRevisitFlg = $sessionData[0]['revisit_flg']; // 前回アクセスは初回の場合 if ($lastRevisitFlg == 0){ $revisitFlg = 1; // 前回アクセスはリピーターの場合 } else { $revisitFlg = $lastRevisitFlg; } } // 前回のアクセスが再訪以外の場合、成果レコードが存在により再訪を設定します if ($lastRevisitFlg != 2){ // 成果レコードが存在により、再訪を判断します $name = CampaignDbTableNames::getName_Seika($code); $sql = <<<SQL select count(cookie_id) as cnt from {$name} where cookie_id=? SQL; $param = array($cookieId); $seikaData =& $db->query($sql, $param); // 成果レコード存在の場合、再訪を設定 if ($seikaData[0]["cnt"] != 0) { $revisitFlg = 2; } } } return $revisitFlg; }
/** * セッションテーブルへの書き込みします * @param string $cookieId クッキーID * @param array $teikei 提携メディア情報 * @param string $patternId LPOパターンID * @return string セッションID */ public function insertDbSeesion($cookieId, &$teikei) { $db =& $this->_core->getDB(); $name = CampaignDbTableNames::getName_Session($this->_code); $ankenId = $teikei['anken_id']; $mediaId = $teikei['media_id']; $remoteAdd = $this->_ip; $referer = $this->_referer; $regTime = date('Y-m-d H:i:s'); $this->_regDate = date('Y-m-d', strtotime($regTime)); $sql = <<<SQL insert into {$name} (anken_id, media_id, cookie_id, reg_time, remote_add, referer, nyuko_url, keyword, sem_kind, bid) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) SQL; $param = array($ankenId, $mediaId, $cookieId, $regTime, $remoteAdd, $referer, $this->_nyukoUrl, $this->_keyWord, $this->_semKind, $this->_bannerId); $db->execute($sql, $param); return mysql_insert_id(); }
public function insertDbSeesion($cookieId, &$teikei, $patternId, &$option, $device) { //↑↑===========nm00260 2012/01/05 end===================================== $db =& $this->_core->getDB(); $ankenId = $teikei['anken_id']; $mediaId = $teikei['media_id']; $mediaUserId = $this->_mediaUserId; $remoteAdd = $_SERVER['HTTP_X_FORWARDED_FOR']; $referer = $_SERVER["HTTP_REFERER"]; $bannerId = $this->_bannerId; $regTime = date('Y-m-d H:i:s'); $name = CampaignDbTableNames::getName_Session($this->_code); //↓↓===========nm00260 2012/01/05 start=================================== //$param = array($ankenId, $mediaId, $mediaUserId, $cookieId, // $regTime, $remoteAdd, $referer, $patternId, $bannerId); $param = array($ankenId, $mediaId, $mediaUserId, $cookieId, $regTime, $remoteAdd, $referer, $patternId, $bannerId, $device); //↑↑===========nm00260 2012/01/05 end===================================== // オプションパラメータ $addColumns = ""; $addValues = ""; if (empty($option) == false) { foreach ($option as $key=>$value) { $addColumns .= ", option{$key}"; $addValues .= ", ?"; $param[] = $value['return_value']; } } //↓↓===========nm00260 2012/01/05 start=================================== //項目追加-デバイス「device」 $sql = <<<SQL insert into {$name} (anken_id, media_id, media_user_id, cookie_id, reg_time, remote_add, referer, lpo_pattern_id, bid, device {$addColumns}) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ? {$addValues}) SQL; //↑↑===========nm00260 2012/01/05 end===================================== $db->execute($sql, $param); return mysql_insert_id(); }
/** * セッション情報とメディアタグ情報を取得します。 * @param string $cookieId クッキーID */ public function &getSessionAndMediaUrl($sessionId) { $db =& $this->_core->getDB(); // テーブル名取得 $table_name_session = CampaignDbTableNames::getName_Session($this->_code); $table_name_media = CampaignDbTableNames::getName_TeikeiMedia($this->_code); //↓↓===========nm90022 2009/08/25 start=================================== //無料会員登録用のメディアタグ反映(track_media_url1) // SQL $sql = <<<SQL select S.session_id, S.anken_id, S.media_id, S.media_user_id, S.cookie_id, S.reg_time, S.remote_add, S.referer, S.lpo_pattern_id, S.bid, S.mob_carrier, S.mob_uid, S.option1, S.option2, S.option3, S.option4, S.option5, M.track_media_url1 from {$table_name_session} as S inner join {$table_name_media} as M on S.anken_id = M.anken_id and S.media_id = M.media_id where session_id=? SQL; //↑↑===========nm90022 2009/08/25 end===================================== $param = array($sessionId); $data =& $db->query($sql, $param); if (count($data) != 1) { throw new ActionMobile_SessionNotFountException($sessionId); } return $data[0]; }