osCommerce Online Merchant v2.3.3.4

osCommerce Online Merchant v2.3.3.4 is a general maintenance release focusing on improving core features and the Database Tables "Convert to UTF-8" action introduced in the previous release.

If you performed the UTF-8 conversion in the previous release and it resulted in garbage text, please apply the updated conversion again and select the character set you had previously (most commonly latin1). The updated conversion also updates each record manually and detects and prevents double encodings, and detects existing character sets automatically for new conversions.

This release is in preparation of and building up to v2.3.4.

Changelog Changes from v2.3.3.3

The following changes have been applied:

Title Description Bug Severity Committer
MySQL Error Functions (2 files) Don't pass a null parameter to the MySQL error functions otherwise PHP will display a warning message. 636 Low Harald
UTF-8 Conversion (2 files) Also manually convert existing data records to UTF-8 and detect encodings to prevent double encodings. Allow a dry-run to show which queries would be performed. Low Harald
LC_NUMERIC Locale (2 files) As LC_ALL is now being used to set the locale, manually set LC_NUMERIC to the system locale to prevent languages using commas in float/decimal values. 634 Low Harald
Version Update (1 file) Update version to v2.3.3.4.

API Changes

The following API changes have been applied:

Title Description
LC_NUMERIC Locale As the language locale is set to LC_ALL, some languages were using commas in float/decimal values which conflicted with MySQL. LC_NUMERIC is now set to the system locale after the main language file has loaded, overriding the LC_ALL value.

Language Definitions

The following language definitions have been modified:

Definitions Status
[admin] database_tables.php

TABLE_HEADING_QUERIES
ACTION_UTF8_CONVERSION_FROM_AUTODETECT
ACTION_UTF8_CONVERSION_FROM
ACTION_UTF8_DRY_RUN


New
New
New
New

Modified Files

Files that have been modified in this release include:

Modified Files
admin/includes/functions/database.php
admin/includes/languages/english/database_tables.php
admin/includes/application_top.php
admin/database_tables.php
includes/functions/database.php
includes/application_top.php
includes/version.php

File Changes

MySQL Error Functions (2 files)

admin/includes/functions/database.php
includes/functions/database.php

in those two files, change mysqli_connect_errno() from:

function mysqli_connect_errno($link = null) {
  return mysql_errno($link);
}

to:

function mysqli_connect_errno($link = null) {
  if ( is_null($link) ) {
    return mysql_errno();
  }

  return mysql_errno($link);
}

change mysqli_connect_error() from:

function mysqli_connect_error($link = null) {
  return mysql_error($link);
}

to:

function mysqli_connect_error($link = null) {
  if ( is_null($link) ) {
    return mysql_error();
  }

  return mysql_error($link);
}

change mysqli_errno() from:

function mysqli_errno($link = null) {
  return mysql_errno($link);
}

to:

function mysqli_errno($link = null) {
  if ( is_null($link) ) {
    return mysql_errno();
  }

  return mysql_errno($link);
}

change mysqli_error() from:

function mysqli_error($link = null) {
  return mysql_error($link);
}

to:

function mysqli_error($link = null) {
  if ( is_null($link) ) {
    return mysql_error();
  }

  return mysql_error($link);
}

View online at GitHub

UTF-8 Conversion (2 files)

Copy and replace the following files to their respective directories:

admin/includes/languages/english/database_tables.php
admin/database_tables.php

Please also update the language definitions for the other languages you have installed.

View online at GitHub

LC_NUMERIC Locale (2 files)

admin/includes/application_top.php
includes/application_top.php

In those two files, search for the following line:

// include the language translations
  require(DIR_WS_LANGUAGES . $language . '.php');

and replace with:

// include the language translations
  $_system_locale_numeric = setlocale(LC_NUMERIC, 0);
  require(DIR_WS_LANGUAGES . $language . '.php');
  setlocale(LC_NUMERIC, $_system_locale_numeric); // Prevent LC_ALL from setting LC_NUMERIC to a locale with 1,0 float/decimal values instead of 1.0 (see bug #634)

View online at GitHub

Version Update (1 file)

includes/version.php

change line 1 from:

2.3.3.3

to:

2.3.3.4

View online at GitHub

Thank You!

We'd like to thank the community for their feedback on our releases. In addition, we thank the following people who participated in the development of this release.

Bug Reporters
ABS0lute
RWork
ungovernable
Testers
ABS0lute
rexxy
Shuen

Reference

A full list of source code changes can be seen at:

https://github.com/osCommerce/oscommerce2/compare/v2.3.3.3...upgrade2334