さいきゆみ さんが書きました:
そういうのって有名なPear がありますよね。私も全然詳しくないのですが、php関係の質問はPhP pro でポイント買ってよく教えてもらっている私です。
それから、私もAUのSLLに悩みましたが、こちらで教えてもらった安いところを使いましたが、そっちの方が将来的に楽じゃないですか?
http://yumisaiki.blogspot.com/2008/08/ssl.html にまとめてあります。
お節介かもしれませんが。
>さいきさん
ご親切にありがとうございます。
実はさいきさんのブログも色々調べているうちに拝見しておりまして最終手段かつ一発で解決するのはやはりサーバ移転だろうなーとは思っておりました。
ただ、サーバ移転となるとそれはそれで色々と準備をしなければいけないので
現状で何とかならないかと思っていた次第です。
先日の書き込みの後、いろいろと試していたところ
includes/functions/ の html_output.php の23行目
コード:
if ($connection == 'NONSSL') {
$link = HTTP_SERVER;
} elseif ($connection == 'SSL') {
if (ENABLE_SSL == 'true') {
$link = HTTPS_SERVER ;
} else {
$link = HTTP_SERVER;
}
} else {
die('</td></tr></table></td></tr></table><br /><br /><strong class="note">Error!<br /><br />Unable to determine connection method on a link!<br /><br />Known methods: NONSSL SSL</strong><br /><br />');
}
を
コード:
if ($connection == 'NONSSL') {
$link = HTTP_SERVER;
} elseif ($connection == 'SSL') {
if (ENABLE_SSL == 'true') {
// incluses/classes/pear/Net/UserAgent/Mobile.php より抜粋&追加(080901)
// USER AGENTを確認して振り分けるif文だと思われる。
if (is_null($userAgent)) {
$userAgent = @$_SERVER['HTTP_USER_AGENT'];
}
// parse User-Agent string
if (Net_UserAgent_Mobile::isDoCoMo($userAgent)) {
$driver = 'DoCoMo';
} elseif (Net_UserAgent_Mobile::isEZweb($userAgent)) {
$driver = 'EZweb';
} elseif (Net_UserAgent_Mobile::isSoftBank($userAgent)) {
$driver = 'SoftBank';
} elseif (Net_UserAgent_Mobile::isWillcom($userAgent)) {
$driver = 'Willcom';
} else {
$driver = 'NonMobile';
}
// 上記で確認した $driver の値を基にモバイルの場合はSSL環境でも HTTP_SERVER を返すように(080901)
if ($driver == 'NonMobile') {
$link = HTTPS_SERVER ;
} else {
$link = HTTP_SERVER ;
}
} else {
$link = HTTP_SERVER;
}
} else {
die('</td></tr></table></td></tr></table><br /><br /><strong class="note">Error!<br /><br />Unable to determine connection method on a link!<br /><br />Known methods: NONSSL SSL</strong><br /><br />');
}
としたところ、まだ確認中ではありますが、今のところPCではSSL、モバイルではNONSSLで稼動できています。
もう一箇所気になっていたfunctions_general.php の27行目 zen_redirect($url) については、
GREPで検索をすると『zen_redirect(zen_href_link(~))』となっているところが大半で、今のところ修正はしていません。
もちろん大半ではあっても全てではなく、
● zen_redirect($origin_href);
● zen_redirect($self_href);
● zen_redirect($banner->fields['banners_url']);
● zen_redirect('http://' . $_GET['goto']);
● zen_redirect($manufacturer->fields['manufacturers_url']);
● zen_redirect(FILENAME_DEFAULT,'','NONSSL');
といったものもあるのは確認しているので、これがどこを指しているのかを捜索中です。
-------------------------------------
また、これは私の環境だけかもしれませんが。
imodeツールで通常通り買い物を進めて行きますと、
支払方法が勝手に固定されるという状況が起きました。
ソースを見ながら検証をしていくと、配送方法選択(tpl_checkout_shipping_default.php)の段階で
radioboxのvalueが通常「yamato_yamato」とかにならないといけないはずなのに
「yamato_」までになっており、PC用とモバイル用のソースを比較してみると、
コード:
<?php echo zen_draw_radio_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'], $checked, 'id="ship-'.$quotes[$i]['id'] . '-' . $quotes[$i]['methods'][$j]['id'].'"'); ?>
上記のコードが、PC用では96行目、モバイル用のソースでは65行目にありました。
これをPC用に合わせると私の環境では正常に購入完了までいったのですが・・・。
皆さんの環境では特に起きてらっしゃらないのであればよいのですが、
一応ご報告まで。長文失礼いたしました。