質問 > その他 > モバイル「https」アクセスで購入完了まで到達できません。 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Linux-user |
投稿日時: 2009/3/3 21:30
対応状況: 確認中
|
常連 登録日: 2008/1/8 居住地: 投稿: 62 |
モバイル「https」アクセスで購入完了まで到達できません。 [EC-CUBE] 2.3.4(手動アップデート済)
[レンタルサーバ] クララオンライン [OS] Red Hat Enterprise Linux 5 [PHP] PHP 5.1.6 [データベース] PostgreSQL 8.3.4 [WEBサーバ] Apache(ver 2.2.3 ) [現象] モバイルページで順当に商品ページ、カートから辿っていき、 SSLのかかったご注文手続きから新規登録を押すと何故かTOPページに戻ってしまいます。 URL(通常) http://www.○○○.co.jp URL(セキュア) https://www.○○○.co.jp また、登録済のメールアドレス・パスワードを入力し、送信を押した場合でも 「システムエラーが発生しました。 大変お手数ですが、サイト管理者までご連絡ください。」と表示されます。 -------------------------------------------------------------------------------- 検証には「i-mode HTML Simulator II」を使用致しました。 ※IE6でも検証済みですが、どちらもエラーとなります。 ※「PC」用ページは全く問題ないのですが、「mobile」用のページで事象が発生します。 -------------------------------------------------------------------------------- ただ、直接「https」を「http」でアクセス(再読込み)すると、 それ以降の買い物は正常に完了します。 以下のログが、「https」アクセス時のエラーなのですが、 「https」でアクセスしてもモバイルで正常に買い物ができる状態にするには どの箇所を修正すれば宜しいでしょうか。 どうかご教授の程、宜しくお願い致します。 data/site.log 引用: 2009/03/03 20:45:06 [/mobile/cart/index.php] https://ドメイン名/mobile/cart/index.php |
seasoft |
投稿日時: 2009/3/4 2:26
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: モバイル「https」アクセスで購入完了まで到達できません。 下記チェンジセットを当てると、副作用により直るかも。
http://svn.ec-cube.net/open_trac/changeset/17863
|
Linux-user |
投稿日時: 2009/3/4 22:13
対応状況: 確認中
|
常連 登録日: 2008/1/8 居住地: 投稿: 62 |
Re: モバイル「https」アクセスで購入完了まで到達できません。 ご回答ありがとうございます。
チェンジセットを確認し、該当ソース部分を差替えて適用させてみたのですが、、 同じエラーが表示されました。 さらに深く調べてみると、どうやらエラーの際にセッションIDが変化しているのですが、 引用: モバイルTOPページ 正常 上記のように、恐らくセッションの受け渡しに問題があるような状態なのですが、 SSLを導入した場合、セッション関係の処理がおかしくなるのでしょうか・・ -------------------------------------------------------------------------------- ※PCサイトのほうは、何の問題もなく、正常にSSLに対応しています。 -------------------------------------------------------------------------------- この場合、どのような修正が必要になりますでしょうか。 ・・困りました どうかご教授の程、宜しくお願い致します。 |
tao_s |
投稿日時: 2009/3/5 1:19
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: モバイル「https」アクセスで購入完了まで到達できません。 引用:
ご注文手続き 正常 の新規登録ボタンのフォームのactionにPHPSESSIDは入ってますか? あと確か2.3.0あたりのバージョンだと携帯のセッションが正常に処理されていなかったと思います。session_factoryだったかな? |
seasoft |
投稿日時: 2009/3/5 2:16
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: モバイル「https」アクセスで購入完了まで到達できません。 > チェンジセットを確認し、該当ソース部分を差替えて適用させてみたのですが、、
> 同じエラーが表示されました。 下記エラー文も、日時以外は同一ですか? 引用: SELECT session_id FROM dtb_mobile_ext_session_id WHERE param_key = 'confirm' AND param_value = '注文する' AND url = 'mobile/cart/index.php' AND create_date >= '2009-03-03 20:15:06' [nativecode=ERROR: invalid byte sequence for encoding "UTF8": 0x92
|
Linux-user |
投稿日時: 2009/3/5 16:54
対応状況: 確認中
|
常連 登録日: 2008/1/8 居住地: 投稿: 62 |
Re: モバイル「https」アクセスで購入完了まで到達できません。 ご回答ありがとうございます。
tao_s様 > 新規登録ボタンのフォームのactionにPHPSESSIDは入ってますか? 確認致しましたところ、新規登録ボタンには /data/Smarty/templates/default/mobile/shopping/index.tpl ↓↓↓引用: <form name="member_form" id="member_form" method="post" action="<!--{$smarty.const.MOBILE_URL_DIR}-->entry/kiyaku.php"> 送信ボタンには /data/Smarty/templates/default/mobile/shopping/index.tpl ↓↓↓引用: <form name="member_form" id="member_form" method="post" action="./deliv.php"> 実際のブラウザで確認したページのソースにも入っていませんでした。 seasoft様 > 下記エラー文も、日時以外は同一ですか? はい、日時以外は同一でした。 試しに、/data/install.php 部分にて ↓↓↓引用: define ('MOBILE_SSL_URL', SSL_URL . 'mobile/'); 上記のように書き換えると、全く問題なく画面推移し、購入まで完了できます。 ただ、SSLではなくなりますので、それが問題です。 EC CUBEの構築事例で紹介されていますページのモバイルページをいろいろと巡回し、 確認してみたのですが、みなさんほとんどhttpsの問題を解決されているようです。 http://www.ec-cube.net/product/cases/backnumber.php -------------------------------------------------------------------------------- 当方で導入しているSSLはジオトラスト クイックSSLプレミアムで、SSL自体は携帯にも対応しているようです。 -------------------------------------------------------------------------------- モバイル版でSSLを利用するには、 デフォルト設定を少しカスタムしないといけないのでしょうか・・。 ご教授の程、宜しくお願い致します。 |
seasoft |
投稿日時: 2009/3/5 17:11
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: モバイル「https」アクセスで購入完了まで到達できません。 根本的な原因は、UAから送出された SJIS の文字コードを内部エンコード(UTF-8)に変換できていないのが原因の予感がします。
mbstring.detect_order を SJIS-win に固定するとどうですか?
|
Linux-user |
投稿日時: 2009/3/6 18:40
対応状況: 確認中
|
常連 登録日: 2008/1/8 居住地: 投稿: 62 |
Re: モバイル「https」アクセスで購入完了まで到達できません。 ご回答ありがとうございます。
mbstring.detect_orderはデフォルトでautoでしたので、 本件に関しては支障はないようなのですが、 いろいろとセッションあたりを検索していましたところ、以下のサイトがHITし、 -OASIS- - 今日のメモ「携帯におけるセッションとセキュリティ(PHP)」 http://pochi.orz.ne.jp/oasis/archive_278.htm 「/html/mobile/.htaccess」内で 「php_flag session.use_trans_sid 1」が有効であるのに何故だろうと疑問に感じていましたが、 HTTPとHTTPS(SSL)をまたいで通信する場合、 外部サイトとみなされ、セッションIDが付加されないという記事を確認致しました。 「/html/mobile/」階層にphpinfoを置いてみて確認しましたところ、 -------------------------------------------------------------------------------- ■HTTP でのアクセス: session Directive Local Value Master Value session.use_trans_sid 1 0 ■HTTPSでのアクセス: session Directive Local Value Master Value session.use_trans_sid 0 0 -------------------------------------------------------------------------------- HTTPS時の「session.use_trans_sid」がHTTP時のものとは異なっておりました。 SSL/非SSL間でのセッションIDの受け渡し http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=1853&forum=5&post_id=6370#forumpost6370 URIパラメータへの埋め込みか、formにhiddenで埋め込みをして、 セッションIDを渡してあげれば大丈夫なようなのですが、 SSL/非SSL間でのセッションを input typeのvalueで利用する場合は、どのような記述になりますでしょうか。 会員情報入力ページなど、 入力事項のあるページの場合、action部分の後ろに<!--{$smarty.const.SID}-->を入力すると、 /data/Smarty/templates/default/mobile/entry/set1.tpl ↓↓↓引用: <form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}--> セッションは引き継げるのですが、ブラウザで確認時、次のページの先頭に ↓↓↓引用: Array ( [mode] => set2 [sex] => □ [year] => □□□□ [month] => □□ [day] => □□ [zip01] => □□□ [zip02] => □□□□ [submit] => 次へ [email] => □□□□□@dj.pdx.ne.jp [password] => □□□□□□□ [reminder] => □ [reminder_answer] => □□□ [name01] => □□□□□ [name02] => □□□□□ [kana01] => □□□□□ [kana02] => □□□□□ ) これを隠したいので、hidden要素とvalueで指定したいのですが、 ↓↓↓引用: <form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->"> valueに<!--{$smarty.const.SID}-->を指定すると、正常に画面推移しませんでした。 valueにセッションを表示させるには、 どのような記述を加える必要がありますでしょうか。 ご教授の程、宜しくお願い致します。 |
homan |
投稿日時: 2009/3/6 19:43
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: モバイル「https」アクセスで購入完了まで到達できません。 試したことはないですが、
ではいかがでしょうか。
|
Linux-user |
投稿日時: 2009/3/6 20:27
対応状況: 確認中
|
常連 登録日: 2008/1/8 居住地: 投稿: 62 |
Re: モバイル「https」アクセスで購入完了まで到達できません。 ご回答ありがとうございます。
/data/Smarty/templates/default/mobile/entry/set1.tpl ↓↓↓引用: <form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->"> 上記を適用すると、value=""と空になり、反映されませんでした・・。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |