Hi All

I need some urgent help from the Zen community please!!

My shop has been running just fine for the last 5 months. I moved to new hosting servers a week ago and everything seemed to be just perfect, except our order volumes fell. I started getting emails from shoppers saying that they are having "Whoops, your session has expired" errors.

Upon investigation, it seems to happen when a shopper is transferred to PayPal, and once they log into their account and press the "Pay Now" button, it immediately jumps back to my shopping cart on the time_out page. (I use Express Checkout)

Here's the other strange thing, when I asked one of my customers having the problem, to try Firefox, it worked without the timeout problem, I also did a purchase myself using Firefox with no problems, so it seems to be an IE issue perhaps?

I changed from filebased caching to database caching as well and this makes no difference.

I then switched on debug, and here are the messages I received whilst a customer was trying to do a purchase (which also came up as session timed out):

First email:
Code:
Checking to see if we are in markflow
  cart contents: physical
   
  NOTE: $this->showPaymentPage = 0
  Customer ID: 202
  Session Data: Array
  (
      [securityToken] => d7187b0b905a2f7299e3fbd7f67d57a1
      [customers_host_address] => 91.85.138.80
      [cartID] => 
      [cart] => shoppingCart Object
          (
              [contents] => Array
                  (
                      [1:c67a93707abd36d886c00bda2ad5b9cf] => Array
                          (
                              [qty] => 3
                              [attributes] => Array
                                  (
                                      [1] => 1
                                  )
   
                          )
   
                  )
   
              [total] => 30
              [weight] => 0
              [cartID] => 
              [content_type] => physical
              [free_shipping_item] => 0
              [free_shipping_weight] => 0
              [free_shipping_price] => 0
              [observers] => Array
                  (
                  )
   
          )
   
      [navigation] => navigationHistory Object
          (
              [path] => Array
                  (
                      [0] => Array
                          (
                              [page] => index
                              [mode] => NONSSL
                              [get] => Array
                                  (
                                      [type] => ec
                                  )
   
                              [post] => Array
                                  (
                                  )
   
                          )
   
                  )
   
              [snapshot] => Array
                  (
                  )
   
              [observers] => Array
                  (
                  )
   
          )
   
      [check_valid] => true
      [language] => english
      [languages_id] => 1
      [languages_code] => en
      [currency] => GBP
      [today_is] => 2009-10-14
      [updateExpirations] => 1
      [session_counter] => 1
      [customers_ip_address] => 91.85.138.80
      [customer_id] => 202
      [customer_default_address_id] => 215
      [customers_authorization] => 0
      [customer_first_name] => robert
      [customer_last_name] => barratt
      [customer_country_id] => 222
      [customer_zone_id] => 0
      [valid_to_checkout] => 1
      [cart_errors] => 
      [payment] => paypalwpp
      [cot_gv] => 0
  )
Second email:
Code:
cart contents is not all virtual or customer is not logged in ... therefore will be submitting address details

Third email:
Code:
not logged in and not in markflow mode - nothing to override

Fourth email:
Code:
address details from override check:

Fifth email:
Code:

Array
  (
      [AMT] => 30.00
      [RETURNURL] =>
  http://tickets.elmbridgechoir.co.uk/...er.php?type=ec
      [CANCELURL] =>
  http://tickets.elmbridgechoir.co.uk/...ng&ec_cancel=1
      [LOCALECODE] => GB
      [CURRENCY] => GBP
      [PAYMENTACTION] => Sale
      [EMAIL] => [email protected]

      [PHONENUM] => 00003334444
      [SOLUTIONTYPE] => SOLE
  )
Sixth (and last) email:
Code:
2009-10-14 12:31:29
  -------------------
  (live transaction) --> https://api-3t.paypal.com/nvp Request Headers: 
  Array
  (
      [0] => Content-Type: text/namevalue
      [1] => X-VPS-Timeout: 45
      [2] => X-VPS-VIT-Client-Type: PHP/cURL
      [3] => X-VPS-VIT-Integration-Product: PHP::Zen Cart - WPP-NVP
      [4] => X-VPS-VIT-Integration-Version: 1.3.8a
  )
   
   
  Request Parameters: {SetExpressCheckout} Array (
      [LOCALECODE] => GB
      [PAYMENTACTION] => Sale
      [EMAIL] => email AT removed DOT com
      [PHONENUM] => 00003334444
      [AMT] => 30.00
      [RETURNURL] =>
  http://tickets.elmbridgechoir.co.uk/...er.php?type=ec
      [CANCELURL] =>
  http://tickets.elmbridgechoir.co.uk/...ng&ec_cancel=1
      [PAGESTYLE] => Primary
      [METHOD] => SetExpressCheckout
      [CURRENCYCODE] => GBP
      [USER] => tickets_api1.elmbridgechoir.co.uk
      [PWD] => ****************
      [VERSION] => 3.2
      [SIGNATURE] => ****************************************************0hGs
  )
   
   
  Response: 
  Array
  (
      [TOKEN] => EC-4X779991GE638332J
      [TIMESTAMP] => 2009-10-14T12:31:32Z
      [CORRELATIONID] => 5a896b05d8cb7
      [ACK] => Success
      [VERSION] => 3.2
      [BUILD] => 1077585
      [CURL_ERRORS] => 
  )
At this point it times out from PayPal and I receive no further debug emails.

I have tried everything, including changing the config.php to different settings. Here is my config.php as it stands now:
Code:
<?php
/**
 * @package Configuration Settings circa 1.3.8
 * @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
 */


/*************** NOTE: This file is similar, but DIFFERENT from the "admin" version of configure.php. ***********/
/***************       The 2 files should be kept separate and not used to overwrite each other.      ***********/

// Define the webserver and path parameters
  // HTTP_SERVER is your Main webserver: eg-http://www.your_domain.com
  // HTTPS_SERVER is your Secure webserver: eg-https://www.your_domain.com
  define('HTTP_SERVER', 'http://tickets.elmbridgechoir.co.uk');
  define('HTTPS_SERVER', '');

  // Use secure webserver for checkout procedure?
  define('ENABLE_SSL', 'false');

// NOTE: be sure to leave the trailing '/' at the end of these lines if you make changes!
// * DIR_WS_* = Webserver directories (virtual/URL)
  // these paths are relative to top of your webspace ... (ie: under the public_html or httpdocs folder)
  define('DIR_WS_CATALOG', '/zencart/');
  define('DIR_WS_HTTPS_CATALOG', '/zencart/');

  define('DIR_WS_IMAGES', 'images/');
  define('DIR_WS_INCLUDES', 'includes/');
  define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');
  define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');
  define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');
  define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/');
  define('DIR_WS_DOWNLOAD_PUBLIC', DIR_WS_CATALOG . 'pub/');
  define('DIR_WS_TEMPLATES', DIR_WS_INCLUDES . 'templates/');

  define('DIR_WS_PHPBB', '/');

// * DIR_FS_* = Filesystem directories (local/physical)
  //the following path is a COMPLETE path to your Zen Cart files. eg: /var/www/vhost/accountname/public_html/store/
  define('DIR_FS_CATALOG', '/home/cliffvt/tickets/zencart/');

  define('DIR_FS_DOWNLOAD', '/home/cliffvt/secure/downloads/');
  define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');
  define('DIR_WS_UPLOADS', DIR_WS_IMAGES . 'uploads/');
  define('DIR_FS_UPLOADS', DIR_FS_CATALOG . DIR_WS_UPLOADS);
  define('DIR_FS_EMAIL_TEMPLATES', DIR_FS_CATALOG . 'email/');

// define our database connection
  define('DB_TYPE', 'mysql');
  define('DB_PREFIX', 'zen_');
  define('DB_SERVER', 'localhost');
  define('DB_SERVER_USERNAME', 'removed');
  define('DB_SERVER_PASSWORD', 'removed');
  define('DB_DATABASE', 'removed');
  define('USE_PCONNECT', 'false');
  define('STORE_SESSIONS', 'db');
  // for STORE_SESSIONS, use 'db' for best support, or '' for file-based storage

  // The next 2 "defines" are for SQL cache support.
  // For SQL_CACHE_METHOD, you can select from:  none, database, or file
  // If you choose "file", then you need to set the DIR_FS_SQL_CACHE to a directory where your apache 
  // or webserver user has write privileges (chmod 666 or 777). We recommend using the "cache" folder inside the Zen Cart folder
  // ie: /path/to/your/webspace/public_html/zen/cache   -- leave no trailing slash
  define('SQL_CACHE_METHOD', 'database'); 
  define('DIR_FS_SQL_CACHE', '/home/cliffvt/tickets/zencart/cache');

// EOF
Any ideas anyone? We're losing buisiness at the moment so it's painful.

I spoke to my hosting company and they have tried everything as well to help me but still no result.

Here are my php settings:
Code:
Apache version    2.2.13 (Unix)
PHP version    5.2.9
MySQL version    5.0.81-community
Architecture    i686
Operating system    Linux
Shared Ip Address    removed
Path to sendmail    /usr/sbin/sendmail
Path to PERL    /usr/bin/perl
Kernel version    2.6.18-128.7.1.el
5PAE

Kind regards


Cliff