我正在使用 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 . ' ' . 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');
真的是会话行为不端或其他导致此错误的原因吗?我忘了提到会话存储在数据库中。