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; }