5) { $fResultCode = 10002; $fResultMessage = "必要な情報が付加されていません。"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } //====================================================================== // 変数宣言 //====================================================================== $fRid_Bill = -1; $fRid_Owner = -1; $fRid_Site = -1; $fRid_Sponsor = -1; $fRid_Product = -1; $fRid_Matter = -1; //追跡計測用 $fTrackType = (filter_input(INPUT_GET, 'rttt') === FALSE || filter_input(INPUT_GET, 'rttt') === NULL) ? '' : filter_input(INPUT_GET, 'rttt'); $fTrackType = is_numeric($fTrackType) ? $fTrackType : ''; $fData1 = (filter_input(INPUT_GET, 'rtarg1') === FALSE || filter_input(INPUT_GET, 'rtarg1') === NULL) ? '' : filter_input(INPUT_GET, 'rtarg1'); $fData2 = (filter_input(INPUT_GET, 'rtarg2') === FALSE || filter_input(INPUT_GET, 'rtarg2') === NULL) ? '' : filter_input(INPUT_GET, 'rtarg2'); $fData3 = (filter_input(INPUT_GET, 'rtarg3') === FALSE || filter_input(INPUT_GET, 'rtarg3') === NULL) ? '' : filter_input(INPUT_GET, 'rtarg3'); $fData4 = (filter_input(INPUT_GET, 'rtarg4') === FALSE || filter_input(INPUT_GET, 'rtarg4') === NULL) ? '' : filter_input(INPUT_GET, 'rtarg4'); $fData5 = (filter_input(INPUT_GET, 'rtarg5') === FALSE || filter_input(INPUT_GET, 'rtarg5') === NULL) ? '' : filter_input(INPUT_GET, 'rtarg5'); $fData6 = (filter_input(INPUT_GET, 'rtarg6') === FALSE || filter_input(INPUT_GET, 'rtarg6') === NULL) ? '' : filter_input(INPUT_GET, 'rtarg6'); $fData7 = (filter_input(INPUT_GET, 'rtarg7') === FALSE || filter_input(INPUT_GET, 'rtarg7') === NULL) ? '' : filter_input(INPUT_GET, 'rtarg7'); $fData8 = (filter_input(INPUT_GET, 'rtarg8') === FALSE || filter_input(INPUT_GET, 'rtarg8') === NULL) ? '' : filter_input(INPUT_GET, 'rtarg8'); $fData9 = (filter_input(INPUT_GET, 'rtarg9') === FALSE || filter_input(INPUT_GET, 'rtarg9') === NULL) ? '' : filter_input(INPUT_GET, 'rtarg9'); $fData10 = (filter_input(INPUT_GET, 'rtarg10') === FALSE || filter_input(INPUT_GET, 'rtarg10') === NULL) ? '' : filter_input(INPUT_GET, 'rtarg10'); //====================================================================== // リダイレクト情報取得 //====================================================================== if (!is_numeric($IDX[0]) || !is_numeric($IDX[1]) || !is_numeric($IDX[2]) || !is_numeric($IDX[3]) || !is_numeric($IDX[4])) { $fResultCode = 10003; $fResultMessage = "必要な情報が正しく付加されていません。"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } else { $fRid_Bill = $IDX[0]; $fRid_Owner = $IDX[1]; $fRid_Site = $IDX[2]; $fRid_Sponsor = $IDX[3]; $fRid_Product = $IDX[4]; } if ($fRid_Bill < 0 || $fRid_Owner < 1 || $fRid_Site < 1 || $fRid_Sponsor < 1 || $fRid_Product < 1) { $fResultCode = 10004; $fResultMessage = "必要な情報が正しく付加されていません。"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } $fNowDateTime = time(); $fNow = date("Y-m-d H:i:s", $fNowDateTime); $fDate = date("Y/m/d", $fNowDateTime); $fTime = date("H:i:s", $fNowDateTime); $fRandom = mt_rand(11111111, 99999999); //====================================================================== // パートナーサイト用設定情報 //====================================================================== // $fUix = ""; $fSetDnaUrl = ""; $fDirectIdx = 0; if (filter_input(INPUT_GET, 'dna') !== FALSE && filter_input(INPUT_GET, 'dna') !== NULL) { if (is_numeric(filter_input(INPUT_GET, 'dna'))) { $fRid_Matter = filter_input(INPUT_GET, 'dna'); } else { if (filter_input(INPUT_GET, 'mid') !== FALSE && filter_input(INPUT_GET, 'mid') !== NULL) { if (is_numeric(filter_input(INPUT_GET, 'mid'))) { $fRid_Matter = filter_input(INPUT_GET, 'mid'); } } } } if (filter_input(INPUT_GET, 'uix') !== FALSE && filter_input(INPUT_GET, 'uix') !== NULL) { $fUix = filter_input(INPUT_GET, 'uix'); } if (filter_input(INPUT_GET, 'ref') !== FALSE && filter_input(INPUT_GET, 'ref') !== NULL) { $fReferer = filter_input(INPUT_GET, 'ref'); } if (filter_input(INPUT_GET, 'dna') !== FALSE && filter_input(INPUT_GET, 'dna') !== NULL) { $fDna = filter_input(INPUT_GET, 'dna'); if (!is_numeric($fDna)) { if (stripos($fDna, "http://") !== FALSE || stripos($fDna, "https://") !== FALSE) { $fSetDnaUrl = $fDna; } } else if (is_numeric($fDna)) { $fSetDnaUrl = "GETIDX"; $fDirectIdx = $fDna; if ($fRid_Matter == -1) { $fRid_Matter = $fDna; } } } //Publishingクッキー情報のチェック $CookiekeyPub = COOKIENAME . "." . $fRid_Sponsor . "." . $fRid_Product . "." . "COOKIEPX"; //テーブル名.識別乱数.Rid番号を格納] $CookiekeyPubP = str_ireplace(".", "_", $CookiekeyPub); //テーブル名.識別乱数.Rid番号を格納 $PubCode = ""; $fPubTableName = ""; $fPubRandomCode = -1; $fPubRetCode = -1; $fBefore_Rid_Redirecting = 0; $fBefore_Random = 0; if (filter_input(INPUT_COOKIE, $CookiekeyPub) !== FALSE && filter_input(INPUT_COOKIE, $CookiekeyPub) !== NULL) { $PubCode = filter_input(INPUT_COOKIE, $CookiekeyPub); } else if (filter_input(INPUT_COOKIE, $CookiekeyPubP) !== FALSE && filter_input(INPUT_COOKIE, $CookiekeyPubP) !== NULL) { $PubCode = filter_input(INPUT_COOKIE, $CookiekeyPubP); } if (filter_input(INPUT_COOKIE, $CookiekeyPub) !== FALSE && filter_input(INPUT_COOKIE, $CookiekeyPub) !== NULL) { $PubCode = filter_input(INPUT_COOKIE, $CookiekeyPub); } else if (filter_input(INPUT_COOKIE, $CookiekeyPubP) !== FALSE && filter_input(INPUT_COOKIE, $CookiekeyPubP) !== NULL) { $PubCode = filter_input(INPUT_COOKIE, $CookiekeyPubP); } if ($PubCode <> "") { $wkPubcode = explode('.', $PubCode); if (count($wkPubcode) == 4 && is_numeric($wkPubcode[1]) && is_numeric($wkPubcode[2])) { $fPubTableName = $wkPubcode[3] . "-" . $wkPubcode[0]; $fPubRandomCode = $wkPubcode[1]; $fPubRetCode = $wkPubcode[2]; } } $Cookiekey1 = COOKIENAME . "." . $fRid_Sponsor . "." . $fRid_Product . "." . "COOKIEAX"; // $Cookiekey2 = COOKIENAME . "." . $fRid_Sponsor . "." . $fRid_Product . "." . "COOKIESX"; // $Cookiekey1P = str_ireplace(".", "_", $Cookiekey1); $Cookiekey2P = str_ireplace(".", "_", $Cookiekey2); $fUniqueFlag = 1; //====================================================================== //クッキー処理 //====================================================================== $val = array(); if (filter_input(INPUT_COOKIE, $Cookiekey1) !== FALSE && filter_input(INPUT_COOKIE, $Cookiekey1) !== NULL) { parse_str(filter_input(INPUT_COOKIE, $Cookiekey1), $val); } else if (filter_input(INPUT_COOKIE, $Cookiekey1P) !== FALSE && filter_input(INPUT_COOKIE, $Cookiekey1P) !== NULL) { parse_str(filter_input(INPUT_COOKIE, $Cookiekey1P), $val); } if (isset($val['id'])) { if ($val['id'] == $fRid_Site) { $fUniqueFlag = 0; } } if ($fUniqueFlag == 1) { if (stripos($fUserAgent, 'MSIE') !== FALSE || stripos($fUserAgent, 'Trident') !== FALSE) { setrawcookie($Cookiekey1, "id=" . $fRid_Site, (time() + 33 * 3600), "/", COOKIEDOMAIN); } else { setrawcookie($Cookiekey1, "id=" . $fRid_Site, (time() + 24 * 3600), "/", COOKIEDOMAIN); } } If ($fUniqueFlag == 0) { $val2 = array(); if (filter_input(INPUT_COOKIE, $Cookiekey2) !== FALSE && filter_input(INPUT_COOKIE, $Cookiekey2) !== NULL) { parse_str(filter_input(INPUT_COOKIE, $Cookiekey2), $val2); if (isset($val2['id1'])) { $fBefore_Rid_Redirecting = $val2['id1']; } if (isset($val2['id7'])) { $fBefore_Random = $val2['id7']; } } else if (filter_input(INPUT_COOKIE, $Cookiekey2P) !== FALSE && filter_input(INPUT_COOKIE, $Cookiekey2P) !== NULL) { parse_str(filter_input(INPUT_COOKIE, $Cookiekey2P), $val2); if (isset($val2['id1'])) { $fBefore_Rid_Redirecting = $val2['id1']; } if (isset($val2['id7'])) { $fBefore_Random = $val2['id7']; } } else { $fUniqueFlag = 1; } } $IsDBEmergency = 0; $SqlCheckExceptIP = "SELECT Rid FROM exceptionawsip WHERE remoteaddr = :ip1 OR remoteaddr = :ip2 OR remoteaddr = :ip3 OR remoteaddr = :ip4; "; $SqlCheckAff = "SELECT Rid_Sponsor, Rid_Owner FROM affiliate "; $SqlCheckAff = $SqlCheckAff . "WHERE Rid_Sponsor = :Rid_Sponsor AND Rid_Owner = :Rid_Owner ORDER BY Rid DESC LIMIT 1;"; $SqlCheckSponsor = "SELECT Rid_Sponsor FROM sponsor WHERE Rid_Sponsor = :Rid_Sponsor AND KilledFlag = 0 ;"; $SqlCheckOwner = "SELECT Rid_Owner FROM owner WHERE Rid_Owner = :Rid_Owner AND KIlledFlag = 0;"; $SqlCheckSite = "SELECT Rid_Site FROM site WHERE Rid_Site = :Rid_Site AND Rid_Owner = :Rid_Owner AND KilledFlag = 0 ;"; $fSqlProduct = "SELECT FinishFlag, FinishDate, FinishTime, UseNGSite, UseOKSite, DataMode, DataKey1, DataKey2, DataPadding, Url, UrlSP, AllocSP, NoSaveCookie, IsSocket, UseIndividualURL, UseMacro, MakePageLink, CookieTerm "; $fSqlProduct = $fSqlProduct . "FROM product WHERE Rid_Product = :Rid_Product AND Rid_Sponsor = :Rid_Sponsor AND KilledFlag = 0 "; $SqlCheckNGSite = "SELECT Rid FROM ngsitelist WHERE Rid_Product = :Rid_Product AND Rid_Site = :Rid_Site ORDER BY Rid LIMIT 1;"; $SqlCheckOKSite = "SELECT Rid FROM oksitelist WHERE Rid_Product = :Rid_Product AND Rid_Site = :Rid_Site ORDER BY Rid LIMIT 1;"; $SqlCheckMaxSite = "SELECT MaxSiteNo FROM checksitemax WHERE Rid_Product = :Rid_Product ORDER BY Rid DESC LIMIT 1;"; $Sqlm = "SELECT Dna, DnaSP, AllocSP FROM matter WHERE Rid_Matter = :Rid_Matter AND Rid_Product = :Rid_Product AND Rid_Sponsor = :Rid_Sponsor AND KilledFlag = 0;"; $SqlIvUrl = "SELECT Url, UrlSP, AllocSP FROM individualurl WHERE Rid_Product = :Rid_Product AND ((Target = 0 AND Rid_Owner = :Rid_Owner) OR (Target = 1 AND Rid_Owner = :Rid_Owner AND Rid_Matter = :Rid_Matter ) OR (Target = 2 AND Rid_Owner = :Rid_Owner AND Rid_Site = :Rid_Site ) OR (Target = 3 AND Rid_Owner = :Rid_Owner AND Rid_Site = :Rid_Site AND Rid_Matter = :Rid_Matter )) ORDER BY Target DESC;"; $InsSQL = "INSERT INTO " . REDIRECTINGTABLENAME . $TableTerm . " (Rid_Redirecting, Rid_Bill, Rid_Owner, Rid_Site, Rid_Sponsor, Rid_Product, Date, Time, Random, DirectUrl, FireMode, RemoteAddr, UserAgent, Referer, Rid_Matter, Uix, PublishingTable, Rid_Publishing, PublishingRandam, CookieKey,Mdcode, Created, UniqueFlag, Before_Rid_Redirecting, Before_Random) VALUES ("; $InsSQL = $InsSQL . ":Rid_Redirecting, 0, :Rid_Owner, :Rid_Site, :Rid_Sponsor, :Rid_Product, :Date, :Time, :Random, :DirectUrl, :FireMode, :RemoteAddr, :UserAgent, :Referer, :Rid_Matter, :Uix, :PublishingTable, :Rid_Publishing, :PublishingRandam, :CookieKey, :Mdcode, :Created, :UniqueFlag, :Before_Rid_Redirecting, :Before_Random "; $InsSQL = $InsSQL . "); "; $SetRidRedirectingSQL = "UPDATE " . REDIRECTINGTABLENAME . $TableTerm . " SET Rid_Redirecting = :Rid_Redirecting WHERE Rid = :Rid;"; $UpdSQL = "UPDATE " . REDIRECTINGTABLENAME . $TableTerm . " SET IsSocket = :IsSocket, SocketCode = :SocketCode, DirectUrl = :DirectUrl WHERE Rid = :Rid;"; $InsSocketIdx = "INSERT INTO socketdatatableindex (RedirectingTable, SocketCode, Rid_Owner, Rid_Site, Rid_Sponsor, Rid_Product, Date, Time, Created) VALUES "; $InsSocketIdx = $InsSocketIdx . "(:RedirectingTable, :SocketCode, :Rid_Owner, :Rid_Site, :Rid_Sponsor, :Rid_Product, :Date, :Time, :Created); "; $InsCookieIdx = "INSERT INTO cookiedatatableindex (RedirectingTable, CookieKey, Rid_Redirecting, Mdcode, Rid_Sponsor, Rid_Product, Date, Time, Created) VALUES "; $InsCookieIdx = $InsCookieIdx . "(:RedirectingTable, :CookieKey, :Rid_Redirecting, :Mdcode, :Rid_Sponsor, :Rid_Product, :Date, :Time, :Created);"; $InsCookieIdx2 = "INSERT INTO cookiedatatableindex%d (RedirectingTable, CookieKey, Rid_Redirecting, Mdcode, Rid_Sponsor, Rid_Product, Date, Time, Created) VALUES "; $InsCookieIdx2 = $InsCookieIdx2 . "(:RedirectingTable, :CookieKey, :Rid_Redirecting, :Mdcode, :Rid_Sponsor, :Rid_Product, :Date, :Time, :Created);"; $InsDualSQL = "INSERT INTO " . REDIRECTINGDAILYTEMPTABLENAME . date("w") . " (Rid_Redirecting, Rid_Bill, Rid_Owner, Rid_Site, Rid_Sponsor, Rid_Product, Date, Time, Random, DirectUrl, FireMode, RemoteAddr, UserAgent, Referer, Rid_Matter, Uix, PublishingTable, Rid_Publishing, PublishingRandam, CookieKey,Mdcode, Created, UniqueFlag, Before_Rid_Redirecting, Before_Random, IsSocket, SocketCode, IsAWS) VALUES ("; $InsDualSQL = $InsDualSQL . ":Rid_Redirecting, 0, :Rid_Owner, :Rid_Site, :Rid_Sponsor, :Rid_Product, :Date, :Time, :Random, :DirectUrl, :FireMode, :RemoteAddr, :UserAgent, :Referer, :Rid_Matter, :Uix, :PublishingTable, :Rid_Publishing, :PublishingRandam, :CookieKey, :Mdcode, :Created, :UniqueFlag, :Before_Rid_Redirecting, :Before_Random, :IsSocket, :SocketCode, :IsAWS ); "; if (date("Ymd", time()) < '20170816') { $InsDualSQL = "INSERT INTO " . REDIRECTINGDAILYTEMPTABLENAME . date("w") . " (Rid_Redirecting, Rid_Bill, Rid_Owner, Rid_Site, Rid_Sponsor, Rid_Product, Date, Time, Random, DirectUrl, FireMode, RemoteAddr, UserAgent, Referer, Rid_Matter, Uix, PublishingTable, Rid_Publishing, PublishingRandam, CookieKey,Mdcode, Created, UniqueFlag, Before_Rid_Redirecting, Before_Random, IsSocket, SocketCode) VALUES ("; $InsDualSQL = $InsDualSQL . ":Rid_Redirecting, 0, :Rid_Owner, :Rid_Site, :Rid_Sponsor, :Rid_Product, :Date, :Time, :Random, :DirectUrl, :FireMode, :RemoteAddr, :UserAgent, :Referer, :Rid_Matter, :Uix, :PublishingTable, :Rid_Publishing, :PublishingRandam, :CookieKey, :Mdcode, :Created, :UniqueFlag, :Before_Rid_Redirecting, :Before_Random, :IsSocket, :SocketCode ); "; } //追跡計測用 $InsTrackSQL = "INSERT INTO " . 'redirectingtrack' . $TableTerm . " (Rid_Redirecting, RedirectingTable, Rid_Owner, Rid_Site, Rid_Sponsor, Rid_Product, TrackType, Data1, Data2, Data3, Data4, Data5, Data6, Data7, Data8, Data9, Data10, Created) VALUES ("; $InsTrackSQL = $InsTrackSQL . ":Rid_Redirecting, :RedirectingTable, :Rid_Owner, :Rid_Site, :Rid_Sponsor, :Rid_Product, :TrackType, :Data1, :Data2, :Data3, :Data4, :Data5, :Data6, :Data7, :Data8, :Data9, :Data10, :Created)"; //ITPフラグチェック $SqlItp = "SELECT Rid FROM product_itp WHERE Rid_Product = :Rid_Product AND status = 1 AND KilledFlag = 0;"; $pdo = null; try { $ESCAPE_OWNER = unserialize(ESCAPEOWNER); if (array_search($fRid_Owner, $ESCAPE_OWNER)) { $dbstr = sprintf("mysql:host=%s;dbname=%s;charset=utf8", ESCAPEDBCONNECTIP, ESCAPEDBCONNECTDBNAME); $pdo = new PDO($dbstr, ESCAPEDBCONNECTUSER, ESCAPEDBCONNECTPASS); if ($pdo === null) { $fResultCode = 90002; $fResultMessage = "DBへの接続ができません"; ErrorLogging($fModuleName, $fResultCode, ESCAPEDBCONNECTDBNAME . "への接続ができません", $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } $IsDBEmergency = 2; } else { $dbstr = sprintf("mysql:host=%s;dbname=%s;charset=utf8", MAINDBCONNECTIP, MAINDBCONNECTDBNAME); $pdo = new PDO($dbstr, MAINDBCONNECTUSER, MAINDBCONNECTPASS); if ($pdo === null) { $IsDBEmergency = 1; $dbstr = sprintf("mysql:host=%s;dbname=%s;charset=utf8", SUBDBCONNECTIP, SUBDBCONNECTDBNAME); $pdo = new PDO($dbstr, SUBDBCONNECTUSER, SUBDBCONNECTPASS); if ($pdo === null) { $fResultCode = 90001; $fResultMessage = "DBへの接続ができません"; ErrorLogging($fModuleName, $fResultCode, MAINDBCONNECTDBNAME . "、" . SUBDBCONNECTDBNAME . "への接続ができません", $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } } } //除外IP情報(AWS)の確認 $ip_part = explode('.', $fRemoteIP); if (count($ip_part) == 4) { $stmt_exceptip = $pdo->prepare($SqlCheckExceptIP); $stmt_exceptip->bindValue(':ip1', $ip_part[0] . '.%', PDO::PARAM_STR); $stmt_exceptip->bindValue(':ip2', $ip_part[0] . '.' . $ip_part[1] . '.%', PDO::PARAM_STR); $stmt_exceptip->bindValue(':ip3', $ip_part[0] . '.' . $ip_part[1] . '.' . $ip_part[2] . '.%', PDO::PARAM_STR); $stmt_exceptip->bindValue(':ip4', $ip_part[0] . '.' . $ip_part[1] . '.' . $ip_part[2] . '.' . $ip_part[3], PDO::PARAM_STR); $stmt_exceptip->execute(); $resultSet0 = $stmt_exceptip->fetchAll(); $resultNum0 = count($resultSet0); if ($resultNum0 > 0) { $fAWS = 1; } } //提携状況確認(スポンサー、サイトオーナーの確認) $stmt_Sponsor = $pdo->prepare($SqlCheckSponsor); $stmt_Sponsor->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_Sponsor->execute(); $resultSet1 = $stmt_Sponsor->fetchAll(); $resultNum1 = count($resultSet1); if ($resultNum1 == 0) { $fResultCode = 10006; $fResultMessage = "広告主が既に削除されています。"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } $stmt_Owner = $pdo->prepare($SqlCheckOwner); $stmt_Owner->bindValue(':Rid_Owner', $fRid_Owner, PDO::PARAM_INT); $stmt_Owner->execute(); $resultSet2 = $stmt_Owner->fetchAll(); $resultNum2 = count($resultSet2); if ($resultNum2 == 0) { $fResultCode = 10007; $fResultMessage = "サイトオーナーが既に削除されています。"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } $stmt_CheckSite = $pdo->prepare($SqlCheckSite); $stmt_CheckSite->bindValue(':Rid_Site', $fRid_Site, PDO::PARAM_INT); $stmt_CheckSite->bindValue(':Rid_Owner', $fRid_Owner, PDO::PARAM_INT); $stmt_CheckSite->execute(); $resultSet3 = $stmt_CheckSite->fetchAll(); $resultNum3 = count($resultSet3); if ($resultNum3 == 0) { $fResultCode = 10008; $fResultMessage = "サイト情報に誤りがあるか、サイトが既に削除されています。"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } $stmt_Affiliate = $pdo->prepare($SqlCheckAff); $stmt_Affiliate->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_Affiliate->bindValue(':Rid_Owner', $fRid_Owner, PDO::PARAM_INT); $stmt_Affiliate->execute(); $resultSet0 = $stmt_Affiliate->fetchAll(); $resultNum0 = count($resultSet0); if ($resultNum0 == 0) { $fResultCode = 10005; $fResultMessage = "オーナー提携がされておりません。"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } $ProductDataMode = 0; $ProductDataKey1 = ""; $ProductDataKey2 = ""; $ProductDataPadding = 0; $ProductUrl = ""; $ProductUrlSP = ""; $ProductAllocSP = 0; $ProductNoSaveCookie = 0; $ProductIsSocket = 0; $ProductUseIndivisualURL = 0; $ProductUseMacro = 0; $ProductMakePageLink = 0; $ProductCookieTerm = 0; $ProductUseNGSite = 0; $ProductUseOKSite = 0; $is_itp = 0; //プロダクト、サイト提携の確認 $stmt_Product = $pdo->prepare($fSqlProduct); $stmt_Product->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_Product->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_Product->execute(); $resultSet4 = $stmt_Product->fetchAll(); $resultNum4 = count($resultSet4); if ($resultNum4 == 0) { $fResultCode = 10009; $fResultMessage = "プロダクト情報に誤りがあるか、プロダクトが既に削除されています。"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } else { foreach ($resultSet4 as $row) { if ($row["FinishFlag"] == 1 || ($row["FinishFlag"] > 1 && ($row["FinishDate"] < date("Y/m/d", time()) || ($row["FinishDate"] == date("Y/m/d", time()) && $row["FinishTime"] < date("H:i:s", time()) )))) { $fResultCode = 10010; $fResultMessage = "本案件は終了したか、現在停止致しております。"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } $ProductDataMode = $row["DataMode"]; $ProductDataKey1 = $row["DataKey1"]; $ProductDataKey2 = $row["DataKey2"]; $ProductDataPadding = $row["DataPadding"]; $ProductUrl = $row["Url"]; $ProductUrlSP = $row["UrlSP"]; $ProductAllocSP = $row["AllocSP"]; $ProductNoSaveCookie = $row["NoSaveCookie"]; $ProductIsSocket = $row["IsSocket"]; $ProductUseIndivisualURL = $row["UseIndividualURL"]; $ProductUseMacro = $row["UseMacro"]; $ProductMakePageLink = $row["MakePageLink"]; $ProductCookieTerm = $row["CookieTerm"]; $ProductUseNGSite = $row["UseNGSite"]; $ProductUseOKSite = $row["UseOKSite"]; break; } } if ($ProductUseNGSite == 1) { $stmt_NGSite = $pdo->prepare($SqlCheckNGSite); $stmt_NGSite->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_NGSite->bindValue(':Rid_Site', $fRid_Site, PDO::PARAM_INT); $stmt_NGSite->execute(); $resultSet5 = $stmt_NGSite->fetchAll(); $resultNum5 = count($resultSet5); if ($resultNum5 > 0) { $fResultCode = 10011; $fResultMessage = "サイトは提携されていません。(提携除外されています)"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } } if ($ProductUseOKSite == 1) { $stmt_OKSite = $pdo->prepare($SqlCheckOKSite); $stmt_OKSite->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_OKSite->bindValue(':Rid_Site', $fRid_Site, PDO::PARAM_INT); $stmt_OKSite->execute(); $resultSet6 = $stmt_OKSite->fetchAll(); $resultNum6 = count($resultSet6); if ($resultNum6 == 0) { $fResultCode = 10012; $fResultMessage = "サイトは提携されていません。(提携許可がありません)"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } } $stmt_CheckMaxSite = $pdo->prepare($SqlCheckMaxSite); $stmt_CheckMaxSite->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_CheckMaxSite->execute(); $resultSet7 = $stmt_CheckMaxSite->fetchAll(); $resultNum7 = count($resultSet7); if ($resultNum7 > 0) { foreach ($resultSet7 as $row) { if ($row["MaxSiteNo"] > 0 && $row["MaxSiteNo"] < $fRid_Site) { $fResultCode = 10013; $fResultMessage = "サイトは提携されていません。(提携上限以降の登録サイトです)"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage, $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } break; } } //ITP対応プロダクトの判別 $stmt_ITP = $pdo->prepare($SqlItp); $stmt_ITP->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_ITP->execute(); $resultSet8 = $stmt_ITP->fetchAll(); $resultNum8 = count($resultSet8); if ($resultNum8 > 0) { foreach ($resultSet8 as $row) { if ($row["Rid"] > 0) { $is_itp = 1; $ProductUseMacro = 1; } break; } } //遷移先URLの判別 $TargetURL = ""; // if ($ProductMakePageLink == 1 && $fSetDnaUrl !== "GETIDX" && $fSetDnaUrl !== "") { // $TargetURL = urldecode($fSetDnaUrl); // } //Change logic to support deeplink easier if ($fSetDnaUrl !== "GETIDX" && $fSetDnaUrl !== "") { $TargetURL = urldecode($fSetDnaUrl); } //デバイスの判別 $Is_SP = false; $SP_UALIST = unserialize(SPUALIST); foreach ($SP_UALIST as $value) { if (stripos($fUserAgent, $value) !== FALSE) { $Is_SP = true; break; } } if ($TargetURL == "" && $ProductUseIndivisualURL == 1) { $stmt5 = $pdo->prepare($SqlIvUrl); $stmt5->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt5->bindValue(':Rid_Owner', $fRid_Owner, PDO::PARAM_INT); $stmt5->bindValue(':Rid_Site', $fRid_Site, PDO::PARAM_INT); $stmt5->bindValue(':Rid_Matter', $fRid_Matter, PDO::PARAM_INT); $stmt5->execute(); $resultSet9 = $stmt5->fetchAll(); $resultNum9 = count($resultSet9); if ($resultNum9 > 0) { foreach ($resultSet9 as $row) { if ($Is_SP && $row["AllocSP"] == 1) { if ($row["UrlSP"] <> "") { $TargetURL = $row["UrlSP"]; break; } else if ($row["Url"] <> "") { $TargetURL = $row["Url"]; break; } } else if (($row["AllocSP"] == 0 || !$Is_SP) && $row["Url"] <> "") { $TargetURL = $row["Url"]; break; } } } } if ($TargetURL == "" && $fRid_Matter > 0) { $MatterDna = ""; $MatterDnaSP = ""; $MatterAllocSP = 0; $stmt4 = $pdo->prepare($Sqlm); $stmt4->bindValue(':Rid_Matter', $fRid_Matter, PDO::PARAM_INT); $stmt4->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt4->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt4->execute(); $resultSet8 = $stmt4->fetchAll(); $resultNum8 = count($resultSet8); if ($resultNum8 > 0) { foreach ($resultSet8 as $row) { $MatterDna = $row["Dna"]; $MatterDnaSP = $row["DnaSP"]; $MatterAllocSP = $row["AllocSP"]; break; } } if ($Is_SP && $MatterAllocSP == 1 && $MatterDnaSP <> "") { $TargetURL = $MatterDnaSP; } else if ((($Is_SP && $MatterAllocSP == 0) || !$Is_SP) && $MatterDna <> "") { $TargetURL = $MatterDna; } } if ($TargetURL == "") { if ($Is_SP && $ProductAllocSP == 1 && $ProductUrlSP <> "") { $TargetURL = $ProductUrlSP; } else if ((($Is_SP && $ProductAllocSP == 0) || !$Is_SP) && $ProductUrl <> "") { $TargetURL = $ProductUrl; } } if ($TargetURL == "") { $TargetURL = $ProductUrl; } if ($ProductDataMode == 1) { $AddData = ""; if ($ProductDataKey1 == "") { $ProductDataKey1 = "xid"; } $AddData = $ProductDataKey1 . "=" . $ProductDataKey2; if ($ProductDataPadding > 0) { $AddData = $AddData . sprintf("%0" . $ProductDataPadding . "d", $fRid_Owner) . "." . sprintf("%0" . $ProductDataPadding . "d", $fRid_Site); } else { $AddData = $AddData . sprintf("%d", $fRid_Owner) . "." . sprintf("%d", $fRid_Site); } if (stripos($TargetURL, "?") !== FALSE) { $TargetURL = $TargetURL . "&" . $AddData; } else { $TargetURL = $TargetURL . "?" . $AddData; } } if ($is_itp == 1) { $AddData = ""; $ItpDataKey = "_rt_ck"; $AddData = $ItpDataKey . "=" . $fRid_Sponsor . ".<%%RID_REDIRECTING%%>"; if (stripos($TargetURL, "?") !== FALSE) { $TargetURL = $TargetURL . "&" . $AddData; } else { $TargetURL = $TargetURL . "?" . $AddData; } } $ret_id = -1; //情報登録(トランザクションモード、URL書き換え等も実施) $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->beginTransaction(); try { $stmt_Ins = $pdo->prepare($InsSQL); $stmt_Ins->bindValue(':Rid_Redirecting', substr($TableTerm, -4) . "99999999", PDO::PARAM_STR); $stmt_Ins->bindValue(':Rid_Owner', $fRid_Owner, PDO::PARAM_INT); $stmt_Ins->bindValue(':Rid_Site', $fRid_Site, PDO::PARAM_INT); $stmt_Ins->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_Ins->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_Ins->bindValue(':Date', $fDate, PDO::PARAM_STR); $stmt_Ins->bindValue(':Time', $fTime, PDO::PARAM_STR); $stmt_Ins->bindValue(':Random', $fRandom, PDO::PARAM_INT); $stmt_Ins->bindValue(':DirectUrl', substr($TargetURL, 0, 255), PDO::PARAM_STR); $stmt_Ins->bindValue(':FireMode', $fDirectIdx, PDO::PARAM_INT); $stmt_Ins->bindValue(':RemoteAddr', $fRemoteIP, PDO::PARAM_STR); $stmt_Ins->bindValue(':UserAgent', substr($fUserAgent, 0, 255), PDO::PARAM_STR); $stmt_Ins->bindValue(':Referer', substr($fReferer, 0, 511), PDO::PARAM_STR); $stmt_Ins->bindValue(':Rid_Matter', $fRid_Matter, PDO::PARAM_INT); $stmt_Ins->bindValue(':Uix', substr($fUix, 0, 511), PDO::PARAM_STR); $stmt_Ins->bindValue(':PublishingTable', $fPubTableName, PDO::PARAM_STR); $stmt_Ins->bindValue(':Rid_Publishing', $fPubRetCode, PDO::PARAM_INT); $stmt_Ins->bindValue(':PublishingRandam', $fPubRandomCode, PDO::PARAM_INT); $stmt_Ins->bindValue(':CookieKey', substr($Cookiekey2, 0, 128), PDO::PARAM_STR); $stmt_Ins->bindValue(':Mdcode', MD5($fUserAgent . "rentracks" . $fRemoteIP), PDO::PARAM_STR); $stmt_Ins->bindValue(':Created', $fNow, PDO::PARAM_STR); $stmt_Ins->bindValue(':UniqueFlag', $fUniqueFlag, PDO::PARAM_INT); $stmt_Ins->bindValue(':Before_Rid_Redirecting', $fBefore_Rid_Redirecting, PDO::PARAM_STR); $stmt_Ins->bindValue(':Before_Random', $fBefore_Random, PDO::PARAM_INT); $stmt_Ins->execute(); $ret_id = $pdo->lastInsertId(); if ($ret_id == 0) { $sql_get_rid = "SELECT Rid FROM " . REDIRECTINGTABLENAME . $TableTerm . " WHERE "; $sql_get_rid = $sql_get_rid . " Rid_Owner= :Rid_Owner, "; $sql_get_rid = $sql_get_rid . " Rid_Site= :Rid_Site, "; $sql_get_rid = $sql_get_rid . " Rid_Sponsor= :Rid_Sponsor, "; $sql_get_rid = $sql_get_rid . " Rid_Product= :Rid_Product, "; $sql_get_rid = $sql_get_rid . " Random= :Random, "; $sql_get_rid = $sql_get_rid . " Date= :Date, "; $sql_get_rid = $sql_get_rid . " Time= :Time; "; $stmt_get_rid = $pdo->prepare($sql_get_rid); $stmt_get_rid->bindValue(':Rid_Owner', $fRid_Owner, PDO::PARAM_INT); $stmt_get_rid->bindValue(':Rid_Site', $fRid_Site, PDO::PARAM_INT); $stmt_get_rid->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_get_rid->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_get_rid->bindValue(':Date', $fDate, PDO::PARAM_STR); $stmt_get_rid->bindValue(':Time', $fTime, PDO::PARAM_STR); $stmt_get_rid->bindValue(':Random', $fRandom, PDO::PARAM_INT); $resultRid = $stmt_get_rid->fetchAll(); $resultRidNum = count($resultRid); if ($resultRidNum > 0) { foreach ($resultRidNum as $row) { $ret_id = $row["Rid"]; } } } $fRid_Redirecting = substr($TableTerm, -4) . sprintf("%08d", $ret_id); if ($IsDBEmergency > 0) { switch ($IsDBEmergency) { case 1: $fRid_Redirecting = "S" . substr($TableTerm, -4) . sprintf("%07d", $ret_id); case 2: $fRid_Redirecting = "E" . substr($TableTerm, -4) . sprintf("%07d", $ret_id); } } $stmt_SetRidRedirecting = $pdo->prepare($SetRidRedirectingSQL); $stmt_SetRidRedirecting->bindValue(':Rid_Redirecting', $fRid_Redirecting, PDO::PARAM_STR); $stmt_SetRidRedirecting->bindValue(':Rid', $ret_id, PDO::PARAM_INT); $stmt_SetRidRedirecting->execute(); $fSocketCode = $fRid_Redirecting . "." . $fRid_Bill . "." . $fRid_Sponsor . "." . $fRid_Owner . "." . $fRandom . "." . $fRid_Site . "." . $fRid_Product; if ($ProductIsSocket > 0) { $TargetURL = str_ireplace(SOCKETCODEMACRO, $fSocketCode, $TargetURL); } $MACROSTR = unserialize(MACROSTR); if ($ProductUseMacro > 0) { if (stripos($TargetURL, $MACROSTR["OWNER"]) !== FALSE) { $TargetURL = str_ireplace($MACROSTR["OWNER"], $fRid_Owner, $TargetURL); } if (stripos($TargetURL, $MACROSTR["SITE"]) !== FALSE) { $TargetURL = str_ireplace($MACROSTR["SITE"], $fRid_Site, $TargetURL); } if (stripos($TargetURL, $MACROSTR["SPONSOR"]) !== FALSE) { $TargetURL = str_ireplace($MACROSTR["SPONSOR"], $fRid_Sponsor, $TargetURL); } if (stripos($TargetURL, $MACROSTR["PRODUCT"]) !== FALSE) { $TargetURL = str_ireplace($MACROSTR["PRODUCT"], $fRid_Product, $TargetURL); } if (stripos($TargetURL, $MACROSTR["MATTER"]) !== FALSE) { $TargetURL = str_ireplace($MACROSTR["MATTER"], $fRid_Matter, $TargetURL); } if (stripos($TargetURL, $MACROSTR["UIX"]) !== FALSE) { $TargetURL = str_ireplace($MACROSTR["UIX"], $fUix, $TargetURL); } if (stripos($TargetURL, $MACROSTR["REDIRECTING"]) !== FALSE) { $TargetURL = str_ireplace($MACROSTR["REDIRECTING"], $fRid_Redirecting, $TargetURL); } if (stripos($TargetURL, $MACROSTR["RED_TABLE"]) !== FALSE) { $TargetURL = str_ireplace($MACROSTR["RED_TABLE"], REDIRECTINGTABLENAME . $TableTerm, $TargetURL); } } $stmt_Upd = $pdo->prepare($UpdSQL); $stmt_Upd->bindValue(':IsSocket', $ProductIsSocket, PDO::PARAM_INT); $stmt_Upd->bindValue(':SocketCode', substr($fSocketCode, 0, 99), PDO::PARAM_STR); $stmt_Upd->bindValue(':DirectUrl', substr($TargetURL, 0, 255), PDO::PARAM_STR); $stmt_Upd->bindValue(':Rid', $ret_id, PDO::PARAM_INT); $stmt_Upd->execute(); if ($ProductIsSocket > 0) { $stmt_socket = $pdo->prepare($InsSocketIdx); $stmt_socket->bindValue(':RedirectingTable', REDIRECTINGTABLENAME . $TableTerm, PDO::PARAM_STR); $stmt_socket->bindValue(':SocketCode', substr($fSocketCode, 0, 99), PDO::PARAM_STR); $stmt_socket->bindValue(':Rid_Owner', $fRid_Owner, PDO::PARAM_INT); $stmt_socket->bindValue(':Rid_Site', $fRid_Site, PDO::PARAM_INT); $stmt_socket->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_socket->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_socket->bindValue(':Date', $fDate, PDO::PARAM_STR); $stmt_socket->bindValue(':Time', $fTime, PDO::PARAM_STR); $stmt_socket->bindValue(':Created', $fNow, PDO::PARAM_STR); $stmt_socket->execute(); } if ($ProductIsSocket == 0) { if (date("Ymd", time()) < '20180509') { $stmt_cookie = $pdo->prepare($InsCookieIdx); $stmt_cookie->bindValue(':RedirectingTable', REDIRECTINGTABLENAME . $TableTerm, PDO::PARAM_STR); $stmt_cookie->bindValue(':CookieKey', substr($Cookiekey2, 0, 127), PDO::PARAM_STR); $stmt_cookie->bindValue(':Rid_Redirecting', $fRid_Redirecting, PDO::PARAM_STR); $stmt_cookie->bindValue(':Mdcode', MD5($fUserAgent . "rentracks" . $fRemoteIP), PDO::PARAM_STR); $stmt_cookie->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_cookie->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_cookie->bindValue(':Date', $fDate, PDO::PARAM_STR); $stmt_cookie->bindValue(':Time', $fTime, PDO::PARAM_STR); $stmt_cookie->bindValue(':Created', $fNow, PDO::PARAM_STR); $stmt_cookie->execute(); } else { $stmt_cookie = $pdo->prepare(sprintf($InsCookieIdx2, date("w", time()))); $stmt_cookie->bindValue(':RedirectingTable', REDIRECTINGTABLENAME . $TableTerm, PDO::PARAM_STR); $stmt_cookie->bindValue(':CookieKey', substr($Cookiekey2, 0, 127), PDO::PARAM_STR); $stmt_cookie->bindValue(':Rid_Redirecting', $fRid_Redirecting, PDO::PARAM_STR); $stmt_cookie->bindValue(':Mdcode', MD5($fUserAgent . "rentracks" . $fRemoteIP), PDO::PARAM_STR); $stmt_cookie->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_cookie->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_cookie->bindValue(':Date', $fDate, PDO::PARAM_STR); $stmt_cookie->bindValue(':Time', $fTime, PDO::PARAM_STR); $stmt_cookie->bindValue(':Created', $fNow, PDO::PARAM_STR); $stmt_cookie->execute(); } if (date("Ymd", time()) >= '20180508') { if (date("H", time()) >= 21) { $stmt_cookie = $pdo->prepare(sprintf($InsCookieIdx2, date("w", mktime(0, 0, 0, date("m", time()), date("d", time()) + 1, date("Y", time()))))); $stmt_cookie->bindValue(':RedirectingTable', REDIRECTINGTABLENAME . $TableTerm, PDO::PARAM_STR); $stmt_cookie->bindValue(':CookieKey', substr($Cookiekey2, 0, 127), PDO::PARAM_STR); $stmt_cookie->bindValue(':Rid_Redirecting', $fRid_Redirecting, PDO::PARAM_STR); $stmt_cookie->bindValue(':Mdcode', MD5($fUserAgent . "rentracks" . $fRemoteIP), PDO::PARAM_STR); $stmt_cookie->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_cookie->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_cookie->bindValue(':Date', $fDate, PDO::PARAM_STR); $stmt_cookie->bindValue(':Time', $fTime, PDO::PARAM_STR); $stmt_cookie->bindValue(':Created', $fNow, PDO::PARAM_STR); $stmt_cookie->execute(); } } } //INSERT Redirecting_DualWork $stmt_dualwork = $pdo->prepare($InsDualSQL); $stmt_dualwork->bindValue(':Rid_Redirecting', $fRid_Redirecting, PDO::PARAM_STR); $stmt_dualwork->bindValue(':Rid_Owner', $fRid_Owner, PDO::PARAM_INT); $stmt_dualwork->bindValue(':Rid_Site', $fRid_Site, PDO::PARAM_INT); $stmt_dualwork->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_dualwork->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_dualwork->bindValue(':Date', $fDate, PDO::PARAM_STR); $stmt_dualwork->bindValue(':Time', $fTime, PDO::PARAM_STR); $stmt_dualwork->bindValue(':Random', $fRandom, PDO::PARAM_INT); $stmt_dualwork->bindValue(':DirectUrl', substr($TargetURL, 0, 255), PDO::PARAM_STR); $stmt_dualwork->bindValue(':FireMode', $fDirectIdx, PDO::PARAM_INT); $stmt_dualwork->bindValue(':RemoteAddr', $fRemoteIP, PDO::PARAM_STR); $stmt_dualwork->bindValue(':UserAgent', substr($fUserAgent, 0, 255), PDO::PARAM_STR); $stmt_dualwork->bindValue(':Referer', substr($fReferer, 0, 511), PDO::PARAM_STR); $stmt_dualwork->bindValue(':Rid_Matter', $fRid_Matter, PDO::PARAM_INT); $stmt_dualwork->bindValue(':Uix', $fUix, PDO::PARAM_STR); $stmt_dualwork->bindValue(':PublishingTable', $fPubTableName, PDO::PARAM_STR); $stmt_dualwork->bindValue(':Rid_Publishing', $fPubRetCode, PDO::PARAM_INT); $stmt_dualwork->bindValue(':PublishingRandam', $fPubRandomCode, PDO::PARAM_STR); $stmt_dualwork->bindValue(':CookieKey', substr($Cookiekey2, 0, 127), PDO::PARAM_STR); $stmt_dualwork->bindValue(':Mdcode', MD5($fUserAgent), PDO::PARAM_STR); $stmt_dualwork->bindValue(':Created', $fNow, PDO::PARAM_STR); $stmt_dualwork->bindValue(':UniqueFlag', $fUniqueFlag, PDO::PARAM_INT); $stmt_dualwork->bindValue(':Before_Rid_Redirecting', $fBefore_Rid_Redirecting, PDO::PARAM_STR); $stmt_dualwork->bindValue(':Before_Random', $fBefore_Random, PDO::PARAM_INT); $stmt_dualwork->bindValue(':IsSocket', $ProductIsSocket, PDO::PARAM_INT); $stmt_dualwork->bindValue(':SocketCode', substr($fSocketCode, 0, 99), PDO::PARAM_STR); if (date("Ymd", time()) >= '20170816') { $stmt_dualwork->bindValue(':IsAWS', $fAWS, PDO::PARAM_INT); } $stmt_dualwork->execute(); //追跡計測用 if (!empty($fTrackType)) { $stmt_InsTrack = $pdo->prepare($InsTrackSQL); $stmt_InsTrack->bindValue(':Rid_Redirecting', $fRid_Redirecting, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':RedirectingTable', REDIRECTINGTABLENAME . $TableTerm, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Rid_Owner', $fRid_Owner, PDO::PARAM_INT); $stmt_InsTrack->bindValue(':Rid_Site', $fRid_Site, PDO::PARAM_INT); $stmt_InsTrack->bindValue(':Rid_Sponsor', $fRid_Sponsor, PDO::PARAM_INT); $stmt_InsTrack->bindValue(':Rid_Product', $fRid_Product, PDO::PARAM_INT); $stmt_InsTrack->bindValue(':TrackType', $fTrackType, PDO::PARAM_INT); $stmt_InsTrack->bindValue(':Data1', $fData1, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Data2', $fData2, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Data3', $fData3, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Data4', $fData4, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Data5', $fData5, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Data6', $fData6, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Data7', $fData7, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Data8', $fData8, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Data9', $fData9, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Data10', $fData10, PDO::PARAM_STR); $stmt_InsTrack->bindValue(':Created', $fNow, PDO::PARAM_STR); $stmt_InsTrack->execute(); } } catch (PDOException $epdo) { //ロールバック $pdo->rollback(); $fResultCode = 10999; $fResultMessage = "予期せぬエラーが発生しました" . $epdo->getMessage(); ErrorLogging($fModuleName, $fResultCode, $fResultMessage . ":" . $epdo->getMessage(), $fURI, $fRemoteIP, $fUserAgent, $fReferer); return ""; } finally { $pdo->commit(); $pdo = null; } if ($ProductNoSaveCookie == 0 && $ret_id > 0) { $CookieArray = array("id1" => $fRid_Redirecting, "id2" => $fRid_Bill, "id3" => $fRid_Owner, "id4" => $fRid_Site, "id5" => $fRid_Sponsor, "id6" => $fRid_Product, "id7" => $fRandom, "table" => REDIRECTINGTABLENAME . $TableTerm, "uix" => $fUix); if (stripos($fUserAgent, 'MSIE') !== FALSE || stripos($fUserAgent, 'Trident') !== FALSE) { setrawcookie($Cookiekey2, http_build_query($CookieArray), time() + (33 * 3600 * $ProductCookieTerm), "/", COOKIEDOMAIN); } else { setrawcookie($Cookiekey2, http_build_query($CookieArray), time() + (24 * 3600 * $ProductCookieTerm), "/", COOKIEDOMAIN); } } return $TargetURL; } catch (Exception $e) { $fResultCode = 10999; $fResultMessage = "予期せぬエラーが発生しました"; ErrorLogging($fModuleName, $fResultCode, $fResultMessage . ":" . $e->getMessage(), $fURI, $fRemoteIP, $fUserAgent, $fReferer); } } ?> リンクが無効です。