示例#1
0
function apc_get_stored_session($session_stuff)
{
    global $db;
    if (!is_array($session_stuff) || sizeof($session_stuff) == 1) {
        apc_debug_email('APC FATAL ERROR::Could not find custom variable in post, cannot re-create session');
        return false;
    }
    $sql = "SELECT *\r\n          FROM " . TABLE_NOCHEX_SESSION . " \r\n          WHERE session_id = :sessionID";
    $sql = $db->bindVars($sql, ':sessionID', $session_stuff[1], 'string');
    $stored_session = $db->Execute($sql);
    apc_debug_email('APC Session Query: ' . $sql . "\n\n\n\$session_stuff = " . print_r($session_stuff, true));
    if ($stored_session->recordCount() < 1) {
        apc_debug_email('APC FATAL ERROR::Could not find stored session in DB, cannot re-create session');
        return false;
    }
    $_SESSION = unserialize(base64_decode($stored_session->fields['saved_session']));
    return true;
}
} else {
    fputs($fp, "POST {$callback_url["path"]} HTTP/1.1\r\n");
    fputs($fp, "Host: {$callback_url["host"]}\r\n");
    fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
    fputs($fp, "Content-length: " . strlen($query_string) . "\r\n");
    fputs($fp, "Connection: close\r\n\r\n");
    fputs($fp, $query_string . "\r\n\r\n");
    $response = "";
    while (!feof($fp)) {
        $response .= @fgets($fp, 1024);
    }
    fclose($fp);
    list($headers, $response) = explode("\r\n\r\n", $response);
}
apc_debug_email('APC INFO - POST VARS  ' . "\n" . str_replace('&', " \n&", $query_string));
apc_debug_email('APC INFO - RESPONSE  ' . "\n" . $headers . "\n\n-----------------\n\n" . $response);
if (trim($response) == "AUTHORISED") {
    /**
     * Include shipping class
     */
    require DIR_WS_CLASSES . 'shipping.php';
    /**
     * Include payment class
     */
    require DIR_WS_CLASSES . 'payment.php';
    $payment_modules = new payment($_SESSION['payment']);
    $shipping_modules = new shipping($_SESSION['shipping']);
    /**
     * Include order class
     */
    require DIR_WS_CLASSES . 'order.php';
<?php

/**
 * nochex_apc specific session stuff
 *
 * @package initSystem
 * @copyright Copyright 2003-2007 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: init_nochex_apc_sessions.php 6548 2007-07-05 03:40:59Z drbyte $
 */
$session_post = $_POST['custom'];
$session_stuff = explode('=', $session_post);
$apcFoundSession = true;
if (apc_get_stored_session($session_stuff) === false) {
    apc_debug_email('APC FATAL ERROR::No saved session data available');
    $apcFoundSession = false;
}