系统设置里的session选项看一下,recreate session

解决方案 »

  1.   

    具体在includes/functions/html_output.php里
    有个函数叫tep_href_link()
    这个是OSCommerce里所有连接都要用到的函数
    里面有定义加不加sessionid的代码
    可以看到
        if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) {
          if (tep_not_null($SID)) {
            $_sid = $SID;
          } elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) {
            if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) {
              $_sid = tep_session_name() . '=' . tep_session_id();
            }
          }
        }
    SESSION_FORCE_COOKIE_USE好象可以在后台设置,如果不行的话可以在数据库里的configuration表里找到直接改
      

  2.   

    後台設置裏應該只有緩衝和日志的設置,不過應該在
    shopping\Admin\includes\functions下的session.php裏可以修改
      

  3.   

    還有就是html_output.php下的這段:
     if ($parameters == '') {
          $link = $link . $page . '?' . SID;
        } else {
          $link = $link . $page . '?' . $parameters . '&' . SID;
        }
    改成
    if ($parameters == '') {
          $link = $link . $page     } else {
          $link = $link . $page . '?' . $parameters . '&' ;
        }
    應該就沒有了
      

  4.   

    楼上的各位兄弟,多谢了。如果我直接不加SESSION ID,我试过这样改:
    function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
       ///
    }
    改成以下的:
    function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = false, $search_engine_safe = true) {
      ///
    }
    但是当点击BUY NOW的时候,购物车里是空的,不能正常识别产品信息。为什么呢?
      

  5.   

    另外我又这样试了一下:
    修改tep_href_link这个函数中的以下内容:
    /**
    if (isset($_sid)) {
          $link .= $separator . $_sid;
    }
    */
    这样不加SESSION ID,但也是出现购物车不能正常使用的情况,点BUY NOW一片空白。
      

  6.   

    应该是你把SESSIONID给去掉了,所以他不能把信息存入session里了
    OSCommerce里把所有信息都存session里的
    我觉得你可以试试把SESSION_FORCE_COOKIE_USE改为true,
    可能他就会把信息存cookie里了,这样既去掉了sessionid又能保存了
    试试
      

  7.   

    去了,但这样应该不通用,因为客户的如果限制使用COOKIE的话,就不能购买了。
    为什么SESSION不能隐含的调用,非得在地址栏中出现呢?
      

  8.   

    一般现在cookie应该都开的,很多功能都会用到,比如wish list
    很多网站发现你cookie不开就干脆不让浏览了
    你也可以在首页检查一下,没开cookie就不让进
      

  9.   

    我试过了,将安全等级设为LOW也不行,不知道为什么?
      

  10.   

    设置PHP.INI 仅用COOKIE传SESSIONID