最新消息:觉得本站不错的话 记得收藏哦 博客内某些功能仅供测试 讨论群:135931704 快养不起小站了 各位有闲钱就打赏下把 My Email weicots#gmail.com Please replace # with @

zen_redirect 重定向函数

Zencart 整理 ajiang-tuzi 1005浏览

最近在修改 一页支付遇到个重定项的小问题

$payment_modules = new payment($_SESSION['payment']);
$payment_modules->update_status();

if (($_SESSION['payment'] == '' && !$credit_covers) || (is_array($payment_modules->modules)) && (sizeof($payment_modules->modules) > 1) && (!is_object($$_SESSION['payment'])) && (!$credit_covers) ) {
  $messageStack->add_session('checkout_payment', ERROR_NO_PAYMENT_MODULE_SELECTED, 'error');
}

if (is_array($payment_modules->modules)) {
  $payment_modules->pre_confirmation_check();
}

if ($messageStack->size('checkout_payment') > 0) {
  zen_redirect(zen_href_link(FILENAME_CHECKOUT, '', 'SSL'));
}

zen_redirect 函数的功能是做重定向,也可以说是页面调转函数 。该函数在includes/functions/functions_general.php 文件中定义 第一个参数就是调转页面的URL地址,如果是站内地址的话,可以使用zen_href_link()函数来生成地址,如果是站外地址的话,可以直接输入URL地址,包含http://开头的,第二个参数就是返回的HTTP响应码,一般情况下不使用该参数,这个参数跟php函数void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
的最后一个参数一样,具体可以参考PHP函数
zen_redirect函数 原型如下;

/**
 * Redirect to another page or site
 * @param string The url to redirect to
*/
  function zen_redirect($url, $httpResponseCode = '') {
    global $request_type;
    // Are we loading an SSL page?
    if ( (ENABLE_SSL == 'true') && ($request_type == 'SSL') ) {
      // yes, but a NONSSL url was supplied
      if (substr($url, 0, strlen(HTTP_SERVER . DIR_WS_CATALOG)) == HTTP_SERVER . DIR_WS_CATALOG) {
        // So, change it to SSL, based on site's configuration for SSL
        $url = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG . substr($url, strlen(HTTP_SERVER . DIR_WS_CATALOG));
      }
    }

  // clean up URL before executing it
    while (strstr($url, '&&')) $url = str_replace('&&', '&', $url);
    while (strstr($url, '&&')) $url = str_replace('&&', '&', $url);
    // header locates should not have the & in the address it breaks things
    while (strstr($url, '&')) $url = str_replace('&', '&', $url);

    if ($httpResponseCode == '') {
      session_write_close();
      header('Location: ' . $url);
    } else {
      session_write_close();
      header('Location: ' . $url, TRUE, (int)$httpResponseCode);
    }

    exit();
  }

转载请注明:(●--●) Hello.My Weicot » zen_redirect 重定向函数