0

我正在使用 zen 购物车。我在这里面临一个特殊的问题。每当用户登录时,就会创建一个会话。现在,当用户进入购物车时,将商品添加到购物车并确认订单一切正常.但是,一旦用户付款,某些会话数据(例如 customer_id、customer_type、customer_name 等)就会变为空白,尽管会话没有因为用户没有被注销而被破坏。我不知道到底是什么问题. Session_start()显然是在页面顶部定义的。没有任何域名问题。此外,此代码在localhost.

支付页面上一页代码

<?php
if(strpos(PROJECT_VERSION_MINOR,'2')===0) {
?>
<div class="breadCrumb"><?php echo $breadcrumb->trail(BREAD_CRUMBS_SEPARATOR); ?></div>
<?php } ?>
<h1 id="checkoutPaymentHeading"><?php echo HEADING_TITLE; ?></h1>
<?php echo zen_draw_separator(OTHER_IMAGE_SILVER_SEPARATOR, '100%', '1'); ?>
<?php
$class =& $_SESSION['payment'];
?>
<fieldset id="csNotifications">
<legend><?php echo NAVBAR_TITLE_2; ?></legend>
<p class="main" ><?php echo TEXT_ISECURE_PAYMENT; ?></p>
<div class="main" >
    <?php echo zen_draw_separator(OTHER_IMAGE_SILVER_SEPARATOR, '100%', '1'); ?><br/>
    <?php echo TITLE_CONTINUE_CHECKOUT_PROCEDURE . '&nbsp;' . TEXT_CONTINUE_CHECKOUT_PROCEDURE; ?><br/>
</div>
<table style="width:100%;" class="main" >
<tr>
<td style="text-align:right" class="main">
<?php
  if (isset($_SESSION['payment']->form_action_url)) {
    $form_action_url = $_SESSION['payment']->form_action_url;
  } else {
    $form_action_url = zen_href_link('https://direct.tranzila.com/xmobile/', '', 'SSL');
  }
  $return_url =  zen_href_link(FILENAME_CHECKOUT_PROCESS, 'referer=tranzila', 'SSL');
  echo zen_draw_form('checkout_confirmation', 'https://direct.tranzila.com/xmobile/', 'post');  
  echo 
  zen_draw_hidden_field('currency', '2') . "\n" . 
  zen_draw_hidden_field('sum', $_SESSION['cart']->total) . "\n" . 
  zen_draw_hidden_field('TranzilaToken', $_SESSION['securityToken']) . "\n" . 
  zen_draw_hidden_field('supplier', 'xmobile') . "\n" . 
  zen_draw_hidden_field('myid', '0000000'.$_SESSION['customer_id']) . "\n" . 
  zen_draw_hidden_field('contact', $_SESSION['is_info']['xxxName']) . "\n" . 
  zen_draw_hidden_field('email', $_SESSION['is_info']['xxxEmail']) . "\n" . 
  zen_draw_hidden_field('phone', $_SESSION['is_info']['xxxPhone']) . "\n" . 
  zen_draw_hidden_field('cancel_return', zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')). "\n" .
  zen_draw_hidden_field('MerchantNumber', $_SESSION['is_info']['MerchantNumber']) . "\n" . 
  zen_draw_hidden_field('language', $_SESSION['is_info']['language']) . "\n" . 
  zen_draw_hidden_field('xxxName', $_SESSION['is_info']['xxxName']) . "\n" . 
  zen_draw_hidden_field('xxxAddress', $_SESSION['is_info']['xxxAddress']) . "\n" . 
  zen_draw_hidden_field('xxxCity', $_SESSION['is_info']['xxxCity']) . "\n" . 
  zen_draw_hidden_field('xxxProvince', $_SESSION['is_info']['xxxProvince']) . "\n" . 
  zen_draw_hidden_field('xxxPostal', $_SESSION['is_info']['xxxPostal']) . "\n" . 
  zen_draw_hidden_field('xxxCountry', $_SESSION['is_info']['xxxCountry']) . "\n" . 
  zen_draw_hidden_field('xxxEmail',  $_SESSION['is_info']['xxxEmail']) . "\n" . 
  zen_draw_hidden_field('xxxVar1', $_SESSION['is_info']['is_order_id']) . "\n" . 
  zen_draw_hidden_field('xxxVar2', $_SESSION['is_info']['xxxVar2']) . "\n" . 
  zen_draw_hidden_field('xxxPhone', $_SESSION['is_info']['xxxPhone']) . "\n" . 
  zen_draw_hidden_field('Products', $_SESSION['is_info']['Products']) . "\n" . 
  zen_draw_hidden_field('ReturnURL', $return_url) . "\n" . 
  zen_draw_hidden_field('cancel_return', zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')) ;

  echo zen_image_submit(BUTTON_IMAGE_CONTINUE, BUTTON_CONTINUE_ALT) . '</form>' . "\n";
?>
    </td>
  </tr>
</table>
</fieldset>

支付页面代码

<?php
if($_REQUEST['Response'] == '000')
{
$zco_notifier->notify('NOTIFY_HEADER_START_CHECKOUT_PROCESS');
    require(DIR_WS_MODULES . zen_get_module_directory('checkout_process.php'));
$_SESSION['cart']->reset(true);
unset($_SESSION['sendto']);
    unset($_SESSION['billto']);
    unset($_SESSION['shipping']);
    unset($_SESSION['payment']);
    unset($_SESSION['comments']);
    $order_total_modules->clear_posts();
$zco_notifier->notify('NOTIFY_HEADER_END_CHECKOUT_PROCESS');
    zen_redirect(zen_href_link(FILENAME_CHECKOUT_SUCCESS, (isset($_GET['action']) && $_GET['action'] == 'confirm' ? 'action=confirm' : ''), 'SSL'));
}
else
{
    zen_redirect(zen_href_link(FILENAME_PAYMENT_FAIL, (isset($_GET['action']) && $_GET['action'] == 'confirm' ? 'action=confirm&code='.$_REQUEST['Response'] : '&code='.$_REQUEST['Response']), 'SSL'));
    exit;
}
require(DIR_WS_INCLUDES . 'application_bottom.php');

真的是会话行为不端或其他导致此错误的原因吗?我忘了提到会话存储在数据库中。

4

1 回答 1

0

配置->会话

检查您的设置,尤其是:

重新创建会话(设置为 false)

尝试使用您的设置,看看它如何影响您的会话状态。

于 2014-02-28T21:02:52.280 回答