コード例 #1
0
	/**
	 * セッション情報とメディアタグ情報を取得します。
	 * @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];
	}
コード例 #2
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();
	}
コード例 #3
0
    /**
     * セッションテーブルへの書き込みします
     * @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();
    }
コード例 #4
0
	/**
	 * 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);
	}
コード例 #5
0
	/**
	 * 携帯ユーザ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];
	}
コード例 #6
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;
        }
    }
コード例 #7
0
 /**
  * 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);
 }
コード例 #8
0
	/**
	 * 再訪フラグを取得します
	 */
	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;
	}
コード例 #9
0
    /**
     * セッションテーブルへの書き込みします
     * @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();
    }
コード例 #10
0
	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();
	}
コード例 #11
0
    /**
     * セッション情報とメディアタグ情報を取得します。
     * @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];
    }