投稿の際は下記の情報をお書き添えください。
-------------------------------------------
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)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------

フォーラムへの返信

8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • 投稿者
    投稿
  • 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を指定してるのに、セッションが切れるのでおかしい感じですが。

8件の投稿を表示中 - 1 - 8件目 (全8件中)