投稿の際は下記の情報をお書き添えください。
-------------------------------------------
WordPress のバージョン:(例 6.0.2)
Welcart のバージョン:(例 2.8.1)
PHP のバージョン:(例 8.0)
Welcart専用の拡張プラグインとバージョン:(例 DL Seller 3.4.1、SKU Select 1.4.2)
ご利用の親テーマとバージョン :(例 Welcart Basic 1.7.1)
ご利用の子テーマとバージョン :(例 Welcart Beldad 1.4)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------
フォーラムへの返信
-
投稿者投稿
-
go参加者
nanbuさん ありがとうございます。
そうですね。すでに解決済でした。
追記をしたら正常に動きだしました!
ありがとうございました。
go参加者nanbuさん ありがとうございます。
パーマリンクはデフォルトでテストしていました。
/%category%/%postname%/に変更しても変化はありませんでした。
一応、仮に解決したのは、
wp-content/plugins/usc-e-shop/classes/usceshop.class.php
の5830行くらい
function uscesdc( $sessid )
の以下をコメントアウトしました。
/*if( 'acting' !== $addr && 'mobile' !== $addr && $postfix !== $addr ) {
$sessid = '';
return NULL;
}*/
これで、共有SSLとHTTPを行き来してもセッションが切れることなくカートが正常に動くことができました。
ちなみに、$addrという変数ですが、
共有SSL初回アクセスですと値は空で、
2回目以降は値はIPアドレスになっていました。
とりあえず上記をコメントアウトした状態で使用したいと思います。
少しテスト運用してみますね。
皆様ご指導ありがとうございました。
go参加者おはようございます。
共有SSLへsession_idが引き渡せないのは、
最初に、共有SSLに入った時、$sessidが空になるのが原因のようです。
wp-content/plugins/usc-e-shop/classes/usceshop.class.php
で、5830行くらいの、
function uscesdc( $sessid )に$sessidを通すと値が空になります。
共有SSLにアクセスしたときは、session_idが空の状態で、session_startしますので、新しいsession_idができてしまっているようです。
もう少し調べてみます。
go参加者phpinfo();を設置して調べてみると共有SSLとhttpにクッキーの違いがありました。
PHP Variables
共有ssl
_COOKIE[“uk4f4058bdb6817”] 3l48sj2op2bkajo0e8vjhuhpf1
_COOKIE[“uk4f404ff300754”] s9ea1k2u8i4fip90229a02lqe7
http
_COOKIE[“uk4f4058bdb6817”] l7iv70gsrj8fq3l68nc7pp6jc4
_COOKIE[“admuk4f4058bdb6817”] kksgcbko2bg88en0norsf271d6
クッキーは、uk4f4058bdb6817ですが、読み込んでるセッションが違うみたいです。
3l48sj2op2bkajo0e8vjhuhpf1は、実際には、
/virtual/xxx/public_htm/xxx.net/sessionフォルダに、
sess_3l48sj2op2bkajo0e8vjhuhpf1
で保存されています。同様に、httpのuk4f4058bdb6817も
sess_l7iv70gsrj8fq3l68nc7pp6jc4
で保存されていました。
なので、共有SSLとHTTPとセッションが別れて保存されるようです。
ただ、以前のようにセッションが何個も作られるわけではないので解決に近づいたと思います。
もう少し調べてみます
go参加者nanbuさん ありがとうございます。
まず、nanbuさんのご指導どおりに設定させていただきました。
共有SSLでやると、ホームとかサイトマップに行くたびにカウントアップされておおお!これは、
という感じでしたが・・・
カートに商品を入れるとカウントが1になります・・・
共有SSLを外すとカウントが順調に上がっていって!
複数商品OK、セッション切れることなく正常動作確認できました!
共有SSLがまたネックになるようです。
まだちょっとしか調べてないのでもう少し調べてみます。
go参加者shikaさん ありがとうございます。
WordPressを使わないで、単独で
session_start();
echo $_SESSION['count'] = intval($_SESSION['count']) + 1;
echo ''.session_save_path();-
をするとたしかに.htaccessではうまくカウントアップしませんでした。
ini_set(“session.save_path”, “/virtual/xxx/public_html/xxx.net/session/”);
を入れてやるとうまくいきました!
これは解決かな?!と思いWordPressのファイルに
ini_set(“session.save_path”, “/virtual/xxx/public_html/xxx.net/session/”);
を設置しましたが、結果はうまくいきませんでした・・・
/virtual/xxx/public_htm/wp-config.php
/virtual/xxx/public_htm/index.php
/virtual/xxx/public_htm/wp-content/plugins/usc-e-shop/classesusceshop.class.php
この3つに
ini_set("session.save_path", "/virtual/xxx/public_html/xxx.net/session/");
echo $_SESSION['count'] = intval($_SESSION['count']) + 1;
echo ''.session_save_path();を設置して試してみました。
結果は3つともうまくいきませんでした。
まず、カートの中に商品を入れてホームに戻ってもう一度カートを見ると空になります。
session_save_pathは正常に表示されるもの、$_SESSIONはずっと1のままです。何度カートに入れても1のままです。
あとini_setを設置した状態で、共有SSLにするとカートのリンクを何回か押すとたまにuscesidの値が変わります。
次に、php.iniを
/virtual/xxx/public_htm/
に設置しました。
[Session]
session.save_path = "/virtual/poro/public_html/xxx.net/session/"/virtual/xxx/public_htm/wp-config.php
に以下を設置しました。
echo $_SESSION['count'] = intval($_SESSION['count']) + 1;
echo ''.session_save_path();結果1が表示され、session_save_pathが表示されません。
もう少し調べてみます。
go参加者こんにちは、
Sessionフォルダを見ながらカートに追加したところ、
セッションが複数できました。
1個入れるごとに1つのセッションができるようです。
1つ入れてすぐにもう一つ商品を入れると新しいセッションができるようです。商品が2個になる場合もありますが、たいてい1個です。
セッションは、2個から4個くらいになります。
サイト自体は、おととい設置したばかりなので誰もアクセスしてこないと思います。
カートを何度かリロードしたりカートのリンクを押していると、
「只今、カートに商品はございません。」
と表示されるときには、セッションを使っていないようです。
複数のセッションができるということで、商品を追加するたびに新しいセッションを追加しようとしているようなので、
サイトのトップディレクトリの.htaccessに
php_value session.auto_start Off
を追加しましたが変化なしです。
もう少し調べてみます。
go参加者ありがとうございます。
session.save_pathの指定は、
/virtual/xxx/public_html/xxx.com/
の.htaccessで
php_value session.save_path /virtual/xxx/public_html/xxx.com/session
このように設定しました。
また、sessionフォルダはパーミッション707にしました。
サイトのトップディレクトリでsession.save_pathを指定してるのに、セッションが切れるのでおかしい感じですが。
-
投稿者投稿