2014-05-14 32 views
4

我面臨的問題xcart, 我試圖爲創建xcart 會議和存儲值,我用儲值和retrive上TPL文件xcart

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文件 請幫助我。在此先感謝

+0

我希望你知道,如果你想設置一個變量,你需要使用'$ =認購不1' '$ subscription == 1',它只是將變量的值與1進行比較,但除此之外什麼也不做。 –

回答

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.*} 

*/ 
+0

php和tpl在不同的位置, 不是在這個php文件中的tpl。 無法正常工作。 – user3635340

+0

您是否在任何php文件中打印會話可能有助於調試它。你確定你的會話存在,當你打印{$ smarty.session。*}時會發生什麼 – kazimt9

+0

{$ smarty.session。*} – user3635340

0

您應該首先檢查是否有任何變量$_SESSION。運行在PHP(不在Smarty)var_dump($_SESSION),以確保它有任何變數

我看着文檔,似乎x-cart不以您認爲的方式存儲會話變量(所以不會有變量在$_SESSION)。它不會將會話存儲在$_SESSION中,而是以一些自定義的方式存儲。你可以看看http://kb.x-cart.com/display/XDD/Sessions+management

由於沒有數據在$_SESSION當你試圖在Smarty中使用$_SESSION它不會工作。您需要使用x-cart方法獲取會話變量,然後將它們分配給Smarty

2

下面是與x-cart 4.4.x分支有關的一些與會話變量相關的註釋。

隨着x_session_register()功能,每個變量可以在$XCART_SESSION_VARS陣列中被插入,因此,與 x_session_save()功能,會話變量陣列被保存在數據庫中。

xcart中的會話數據保存在xcart_session_data表中,主鍵使用每個訪問者的會話id值('sessid'列),所有數據以串行格式保存在'data'列中。

例片段:

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變量是在範圍中,我們聲明它作爲全球和檢索它。

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"); 
    } 
在第三方物流文件

{if $my_var} 
    {$my_var} 
{/if}