yamane様
情報有難うございます。さっそく試してみたいと思います。
またテスト結果2も投下しておきます。
もし何かアドバイスいただける点がございましたら幸甚でございますm(._.)m
引用:
----------------------------------------
【1】www\shopping\load_payment_module.php(32)
→イプシロンの決済が終わってからコールするURL。
『SC_Utils::sfIsPrePage』で問題があるみたい。
$objSiteSess = new SC_SiteSession();
$objCartSess = new SC_CartSession();
$objQuery = new SC_Query();
// 前のページで正しく登録手続きが行われた記録があるか判定
SC_Utils::sfIsPrePage($objSiteSess);
----------------------------------------
【2】data\class\sc_sitesession.php(27)
→渡している『$objSiteSess』の中身を作成する処理
/* コンストラクタ */
function SC_SiteSession() {
SC_Utils_Ex::sfDomainSessionStart();
// 前ページでの登録成功判定を引き継ぐ
$_SESSION['site']['pre_regist_success'] =
isset($_SESSION['site']['regist_success'])
? $_SESSION['site']['regist_success'] : "";
$_SESSION['site']['regist_success'] = false;
$_SESSION['site']['pre_page'] =
isset($_SESSION['site']['now_page'])
? $_SESSION['site']['now_page'] : "";
$_SESSION['site']['now_page'] = $_SERVER['PHP_SELF'];
}
----------------------------------------
【3】data\class\util\sc_utils.php(966)
→『sfDomainSessionStart』の中身
/**
* ドメイン間で有効なセッションのスタート
* 共有SSL対応のための修正により、この関数は廃止します。
* セッションはrequire.phpを読み込んだ際に開始されます。
*/
function sfDomainSessionStart() {
/**
* 2.1.1ベータからはSC_SessionFactory_UseCookie::initSession()で処理するため、
* ここでは何も処理しない
*/
if (defined('SESSION_KEEP_METHOD')) {
return;
}
if (session_id() === "") {
session_set_cookie_params(0, "/", DOMAIN_NAME);
if (!ini_get("session.auto_start")) {
// セッション開始
session_start();
}
}
}
----------------------------------------
【4】data\class\util\sc_utils.php(211)
/* 前のページで正しく登録が行われたか判定 */
function sfIsPrePage(&$objSiteSess, $is_mobile = false) {
$ret = $objSiteSess->isPrePage();
if($ret != true) {
// エラーページの表示
SC_Utils::sfDispSiteError(PAGE_ERROR, $objSiteSess, false, "", $is_mobile);
}
}
----------------------------------------
【5】data\class\sc_sitesession.php(43)
/* 前ページが正当であるかの判定 */
function isPrePage() {
if($_SESSION['site']['pre_page'] != "" && $_SESSION['site']['now_page'] != "") {
if($_SESSION['site']['pre_regist_success'] || $_SESSION['site']['pre_page'] == $_SESSION['site']['now_page']) {
return true;
}
}
return false;
}
----------------------------------------
【EX】data\class\helper\sc_helper_mobile.php(83)
→この処理がうまく使えていれば問題ないはずだが・・・?
function lfMobileGetExtSessionId() {
if (!preg_match('|^' . URL_DIR . '(.*)$|', $_SERVER['SCRIPT_NAME'], $matches)) {
return null;
}
$url = $matches[1];
$time = date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME);
$objQuery = new SC_Query;
foreach ($_REQUEST as $key => $value) {
$session_id = $objQuery->get('dtb_mobile_ext_session_id', 'session_id',
'param_key = ? AND param_value = ? AND url = ? AND create_date >= ?',
array($key, $value, $url, $time));
if (isset($session_id)) {
return $session_id;
}
}
return null;
}
----------------------------------------