De meeste webwinkels draaien op osCommerce 2.2, dit is een goede versie van osCommerce maar heeft moeite met PHP 5.3. osCommerce 3 zou overigens sowieso niet gebruikt moeten worden, deze is nog in een Alpha stadium en het duurt nog jaren voordat deze gebruikt kan worden in productie omgeving.Een aantal zaken zijn aangepast welke effect kunnen hebben op de standaard osCommerce 2.2 webshop software pakket, daarnaast een aantal welke effect hebben op contributies.
Een van de verschillen is dat osCommerce voorheen gebruik maakte van de $HTTP_*_VARS, gelukkig is dat in de meeste gevallen al opgelost, maar mocht dit niet het geval zijn plaats dan het volgende in application_top.php
$HTTP_GET_VARS =& $_GET;
$HTTP_POST_VARS =& $_POST;
$HTTP_ENV_VARS =& $_ENV;
$HTTP_SERVER_VARS =& $_SERVER;
$HTTP_COOKIE_VARS =& $_COOKIE;
$_REQUEST = array_merge($_GET, $_POST, $_COOKIE);
Aanvullend kunnen er problemen met de sessies ontstaan, dit zul je wellicht al merken aan de foutmeldingen maar specifieker zul je dit merken aan de foutmelding dat de taalbestanden niet geladen kunnen worden.
Dit heeft te maken met de registrar_globals, specifiek op de sessies. osCommerce is van mening dat $language hetzelfde is als $_SESSION[‘language’], dit is natuurlijk niet het geval.
Plaats daarom onder de sessie_start (in oscommerce tep_session_start()) de volgende code om dit te verhelpen;
foreach($_SESSION AS $key => $value)
{
$$key = $value;
}
Uiteraard is het beter om de sessie variabelen handmatig goed te zetten, maar dat zou zorgen voor een enorme wijziging en dat zie ik niet snel gebeuren.
Daarnaast kunnen er problemen ontstaan door het al tijden afgeraden eregi() functie, maar nu is het er uiteindelijk echt uit. Dit wordt vooral gebruikt in de Ultimate SEO URLs maar ook door andere custom functionaliteiten. De functie dient vervangen te worden door de betere preg(), of indien mogelijk vervangen door strpos() daar dit sneller is. Het is verstopt in ongeveer 80 bestanden dus je kunt het best even zelf kijken welke van toepassing is. het is in ieder geval zeker niet ondoenlijk.
Indien er nog vragen zijn mbt de upgrade van osCommerce, PHP of SEO kan er natuurlijk altijd contact opgenomen worden.