Magic SEO URL pro osCommerce

Provozujeme osCommerce s vypnutými Register Globals

V současné době je dostuná řada návodů jak umožnit provoz osCommerce na serverech s direktivou register_globals nastavenou na Off. Bohužel většina z nich je příliš komplikovaná, všechny naruší kompatibilitu s dalšími doplňky pro osCommerce, jako jsou např. platební moduly a také žádný není kompatibilní s PHP4 i PHP5.

Připravili jsme proto jednoduchý MOD, který Vám umožní provozovat osCommerce se zakázanými Register Globals, a to na PHP4 i PHP5. Tento MOD také pracuje při nastavení direktivy register_globals na On, takže pokud Váš poskytovatel web hostingu změní toto nastavení bez předchozího upozornění, Váš obchod bude pracovat i nadále.


Tento MOD budete muset použít především v případě, že se setkáváte s jedním z následujících chybových hlášeních:

Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory.
FATAL ERROR: register_globals is disabled in php.ini, please enable it!


Název MODu: osCommerce 2.2ms2-060817 Řešení vypnutí Register Globals pro PHP4 i PHP5
Autor MODu: Jiří Stavinoha
Popis MODu: Umožní provozovat osCommerce 2.2ms2 na web serverech se zapnutými i vypnutými Register Globals (kompatibilní s PHP4 i PHP5)


INSTALAČNÍ POKYNY

OTEVŘÍT:

catalog/includes/application_top.php

NAJÍT:

// start the timer for the page parse time log
  
define('PAGE_PARSE_START_TIME'microtime()); 


PŘED, PŘIDAT:

// Register Globals MOD - http://www.magic-seo-url.com

  
if (version_compare(phpversion(), "4.1.0""<") === true) {
    
$_GET &= $HTTP_GET_VARS;
    
$_POST &= $HTTP_POST_VARS;
    
$_SERVER &= $HTTP_SERVER_VARS;
    
$_FILES &= $HTTP_POST_FILES;
    
$_ENV &= $HTTP_ENV_VARS;
    if (isset(
$HTTP_COOKIE_VARS)) $_COOKIE &= $HTTP_COOKIE_VARS;
  }

  if (!
ini_get("register_globals")) {
    
extract($_GETEXTR_SKIP);
    
extract($_POSTEXTR_SKIP);
    
extract($_COOKIEEXTR_SKIP);
  } 


NAJÍT:

// check if register_globals is enabled.
// since this is a temporary measure this message is hardcoded. The requirement will be removed before 2.2 is finalized.
  
if (function_exists('ini_get')) {
    
ini_get('register_globals') or exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory.');
  } 


NAHRADIT:

// Check if register_globals is enabled.
// Since this is a temporary measure this message is hardcoded. The requirement will be removed before 2.2 is finalized.
  /*if (function_exists('ini_get')) { // Register Globals MOD - http://www.magic-seo-url.com
    ini_get('register_globals') or exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory.');
  }*/ 


NAJÍT:

// set SID once, even if empty
  
$SID = (defined('SID') ? SID ''); 


PŘED, PŘIDAT:

// Register Globals MOD - http://www.magic-seo-url.com
  
if (!ini_get("register_globals")) {
    if (
version_compare(phpversion(), "4.1.0""<") === true) {
      if (isset(
$HTTP_SESSION_VARS)) $_SESSION &= $HTTP_SESSION_VARS;
    }
    if(!empty(
$_SESSION)) extract($_SESSIONEXTR_SKIP);
  } 


OTEVŘÍT:

catalog/includes/functions/sessions.php

NAJÍT:

  function tep_session_register($variable) {
    global 
$session_started;

    if (
$session_started == true) {
      return 
session_register($variable);
    } else {
      return 
false;
    }
  }

  function 
tep_session_is_registered($variable) {
    return 
session_is_registered($variable);
  }

  function 
tep_session_unregister($variable) {
    return 
session_unregister($variable);
  } 


NAHRADIT:

// Register Globals MOD - http://www.magic-seo-url.com
  
function tep_session_register($variable) {
    global 
$session_started;
    if (
$session_started == true) {
      
$_SESSION[$variable] = null;
      return 
true;
    } else {
      return 
false;
    }
  }

  function 
tep_session_is_registered($variable) {
    if(isset(
$_SESSION[$variable])) {
      return 
true;
    } else {
      return 
false;
    }
  }

  function 
tep_session_unregister($variable) {
    unset(
$_SESSION[$variable]);
  } 


NAJÍT:

  function tep_session_close() {
    if (
PHP_VERSION >= '4.0.4') {
      return 
session_write_close();
    } elseif (
function_exists('session_close')) {
      return 
session_close();
    }
  } 


NAHRADIT:

// Register Globals MOD - http://www.magic-seo-url.com
  
function tep_session_close() {
    foreach(
$_SESSION as $key => $value) {
      global $
$key;
      
$_SESSION[$key] = $$key;
    }
  } 


OTEVŘÍT:

catalog/admin/includes/application_top.php

NAJÍT:

// Start the clock for the page parse time log
  
define('PAGE_PARSE_START_TIME'microtime()); 


PŘED, PŘIDAT:

  // Register Globals MOD - http://www.magic-seo-url.com
  
if (version_compare(phpversion(), "4.1.0""<") === true) {
    
$_GET &= $HTTP_GET_VARS;
    
$_POST &= $HTTP_POST_VARS;
    
$_SERVER &= $HTTP_SERVER_VARS;
    
$_FILES &= $HTTP_POST_FILES;
    
$_ENV &= $HTTP_ENV_VARS;
    if (isset(
$HTTP_COOKIE_VARS)) $_COOKIE &= $HTTP_COOKIE_VARS;
  }

  if (!
ini_get("register_globals")) {
    
extract($_GETEXTR_SKIP);
    
extract($_POSTEXTR_SKIP);
    
extract($_COOKIEEXTR_SKIP);
  } 


NAJÍT:

// Check if register_globals is enabled.
// Since this is a temporary measure this message is hardcoded. The requirement will be removed before 2.2 is finalized.
  
if (function_exists('ini_get')) {
    
ini_get('register_globals') or exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory.');
  } 


NAHRADIT:

// Check if register_globals is enabled.
// Since this is a temporary measure this message is hardcoded. The requirement will be removed before 2.2 is finalized.
  /*if (function_exists('ini_get')) { // Register Globals MOD - http://www.magic-seo-url.com
    ini_get('register_globals') or exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory.');
  }*/ 


NAJÍT:

// lets start our session
  
tep_session_start(); 


PŘED, PŘIDAT:

// Register Globals MOD - http://www.magic-seo-url.com
  
if (!ini_get("register_globals")) {
    if (
version_compare(phpversion(), "4.1.0""<") === true) {
      if (isset(
$HTTP_SESSION_VARS)) $_SESSION &= $HTTP_SESSION_VARS;
    }
    if(!empty(
$_SESSION)) extract($_SESSIONEXTR_SKIP);
  } 


OTEVŘÍT:

catalog/admin/includes/functions/sessions.php

NAJÍT:

  function tep_session_register($variable) {
    return 
session_register($variable);
  }

  function 
tep_session_is_registered($variable) {
    return 
session_is_registered($variable);
  }

  function 
tep_session_unregister($variable) {
    return 
session_unregister($variable);
  } 


NAHRADIT:

// Register Globals MOD - http://www.magic-seo-url.com
  
function tep_session_register($variable) {
    
$_SESSION[$variable] = null;
  }

  function 
tep_session_is_registered($variable) {
    if(isset(
$_SESSION[$variable])) {
      return 
true;
    } else {
      return 
false;
    }
  }

  function 
tep_session_unregister($variable) {
    unset(
$_SESSION[$variable]);
  } 


NAJÍT:

  function tep_session_close() {
    if (
function_exists('session_close')) {
      return 
session_close();
    }
  } 


NAHRADIT:

// Register Globals MOD - http://www.magic-seo-url.com
  
function tep_session_close() {
    foreach(
$_SESSION as $key => $value) {
      global $
$key;
      
$_SESSION[$key] = $$key;
    }
  } 


OTEVŘÍT:

catalog/install/includes/application.php

NAJÍT:

// Set the level of error reporting
  
error_reporting(E_ALL & ~E_NOTICE); 


ZA, PŘIDAT:

  // Register Globals MOD - http://www.magic-seo-url.com
  
if (version_compare(phpversion(), "4.1.0""<") === true) {
    
$_GET &= $HTTP_GET_VARS;
    
$_POST &= $HTTP_POST_VARS;
    
$_SERVER &= $HTTP_SERVER_VARS;
    
$_FILES &= $HTTP_POST_FILES;
    
$_ENV &= $HTTP_ENV_VARS;
    if (isset(
$HTTP_COOKIE_VARS)) $_COOKIE &= $HTTP_COOKIE_VARS;
  }

  if (!
ini_get("register_globals")) {
    
extract($_GETEXTR_SKIP);
    
extract($_POSTEXTR_SKIP);
    
extract($_COOKIEEXTR_SKIP);
  } 


NAJÍT:

// Check if register_globals is enabled.
// Since this is a temporary measure this message is hardcoded. The requirement will be removed before 2.2 is finalized.
  
if (function_exists('ini_get')) {
    
ini_get('register_globals') or exit('FATAL ERROR: register_globals is disabled in php.ini, please enable it!');
  } 


NAHRADIT:

// Check if register_globals is enabled.
// Since this is a temporary measure this message is hardcoded. The requirement will be removed before 2.2 is finalized.
  /*if (function_exists('ini_get')) {
    ini_get('register_globals') or exit('FATAL ERROR: register_globals is disabled in php.ini, please enable it!');
  }*/ 

ULOŽIT/ZAVŘÍT VŠECHNY SOUBORY