4

我在 x-cart 中遇到问题,我正在尝试为此创建会话并在 x-cart 中存储价值,我使用

x_session_register('subscription');

以及其中的简单变量

$rs=1;
if($rs==1)
{
  $subscription=1;
}
else
{
  $subscription=0;
}

之后在 tpl 文件中使用了一些代码,例如,

{$smarty.session.subscription}

但什么也没发生我也试过

{php}{/php}
$_SESSION[''];

但不能帮助我,我不明白有什么问题,有不同的文件和模板,文件路径也不同尝试在 login.php 中创建会话并希望在 head.tpl 文件中使用它,请帮助我。提前致谢

4

4 回答 4

2

下面是一些与会话变量相关的注释,关于 x-cart 4.4.x 分支。

使用该x_session_register()函数,每个变量都可以插入到$XCART_SESSION_VARS数组中,因此,使用该 x_session_save()函数,会话变量数组被保存在数据库中。

xcart 中的会话数据保存在xcart_session_data表中,主键使用每个访问者的会话 id 值(“sessid”列),所有数据以序列化格式保存在“数据”列中。

示例片段:

if ($some_var == "Y"){
  x_session_register("my_var");  
  $my_var="true";
  x_session_save();
}

if($XCART_SESSION_VARS['my_var '] =="true")
  $smarty->assign("my_var", $my_var); 

如果$XCART_SESSION_VARS变量不在范围内,我们将其声明为全局并检索它。

于 2015-09-17T18:07:36.133 回答
1

在 php 文件中,

    if ($var1){
      x_session_register("my_var");  
      $my_var="content";
      x_session_save();
    }

    if($XCART_SESSION_VARS['my_var'] !=""){
      $smarty->assign("my_var", $XCART_SESSION_VARS['my_var']);
      x_session_unregister("my_var"); 
    }

在 tpl 文件中,

{if $my_var}
    {$my_var}
{/if}
于 2016-02-15T12:47:58.307 回答
0
// Try this in you php 
$smarty->assign('session',$_SESSION);

// OR in tpl
/*
{$session|print_r} // for above assignment

// OR
{php}
    print_r($_SESSION);
{/php}

// OR
{$smarty.session.*}

*/
于 2014-05-14T06:50:26.417 回答
0

您应该首先检查$_SESSION. 在 PHP 中运行(不是在 Smarty 中)var_dump($_SESSION)以确保其中有任何变量

我查看了文档,似乎 x-cart 不会以您认为的方式存储会话变量(因此不会有变量$_SESSION)。它不$_SESSION以某些自定义方式存储会话。你可以看看http://kb.x-cart.com/display/XDD/Sessions+management

$_SESSION当您尝试$_SESSION在 Smarty中使用时,由于没有数据,因此无法正常工作。您需要使用 x-cart 方法获取会话变量,然后将它们分配给 Smarty

于 2014-05-14T09:09:43.310 回答