Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Search with Cyrillic


DimZ

Recommended Posts

Hello,

I am running Oscommerce version 2.3.4.1 Bootstrap edition and everything is running absoliutely fine but i found this annoying problem.

When i search something in my store with LATIN everything is fine, the search results are displayed as they should be.

When i try to search in CYRILLIC it sends me to the advance_search page and it says that some of the fields are not completed right in particular is the DATE FROM and DATE TO.

Does anyone have an idea where the problem can be ?

Thank you in advance.

 

Link to comment
Share on other sites

I get the same results as you but then I would expect to as I only have English language installed. OcS only comes with English as stock. What language do you have installed?

 

Link to comment
Share on other sites

Yes it does come with English only but usually they are a lot of different lanugage packs available. I have Bulgarian language installed at the moment.

Link to comment
Share on other sites

All of the database tables are utf8_unicode_ci and the language encoding is defined as  following in the particular language file:

@setlocale(LC_ALL, array('bg_BG.UTF-8', 'bg_BG.UTF8', 'bg_bg'));

but the problem still occures.

Do you have any other idea what could the problem be ?

Thank you in advance

Link to comment
Share on other sites

I haven't looked at the code, but since it's complaining about the DATE range, perhaps the code for checking the dates is expecting a different format than what the OP is giving. If the date is all numbers, /, and/or ., that ought to be in ASCII. I assume it's not Bulgarian month names being used.

Link to comment
Share on other sites

I can not produce same error check your language file and make sure as Phil said that the date format is consistent. Check to see what the error log is saying. Compare your file and make sure somthing had not changed.

<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2013 osCommerce

  Released under the GNU General Public License
*/

// look in your $PATH_LOCALE/locale directory for available locales
// or type locale -a on the server.
// Examples:
// on RedHat try 'en_US'
// on FreeBSD try 'en_US.ISO_8859-1'
// on Windows try 'en', or 'English'
@setlocale(LC_TIME, 'bg_BG.UTF-8');

define('DATE_FORMAT_SHORT', '%m/%d/%Y');  // this is used for strftime()
define('DATE_FORMAT_LONG', '%A %d %B, %Y'); // this is used for strftime()
define('DATE_FORMAT', 'm/d/Y'); // this is used for date()
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S');
define('JQUERY_DATEPICKER_I18N_CODE', ''); // leave empty for en_US; see http://jqueryui.com/demos/datepicker/#localization
define('JQUERY_DATEPICKER_FORMAT', 'mm/dd/yy'); // see http://docs.jquery.com/UI/Datepicker/formatDate

////
// Return date in raw format
// $date should be in format mm/dd/yyyy
// raw date is in format YYYYMMDD, or DDMMYYYY
function tep_date_raw($date, $reverse = false) {
  if ($reverse) {
    return substr($date, 3, 2) . substr($date, 0, 2) . substr($date, 6, 4);
  } else {
    return substr($date, 6, 4) . substr($date, 0, 2) . substr($date, 3, 2);
  }
}

// if USE_DEFAULT_LANGUAGE_CURRENCY is true, use the following currency, instead of the applications default currency (used when changing language)
define('LANGUAGE_CURRENCY', 'BGN');
// Global entries for the <html> tag
define('HTML_PARAMS','dir="LTR" lang="bg"');
// charset for web pages and emails
define('CHARSET', 'UTF-8');

// page title
define('TITLE', STORE_NAME);

// header text in includes/header.php
define('HEADER_TITLE_CREATE_ACCOUNT', 'Създаване на профил');
define('HEADER_TITLE_MY_ACCOUNT', 'Моят профил');
define('HEADER_TITLE_CART_CONTENTS', 'Съдържание на количката');
define('HEADER_TITLE_CHECKOUT', 'Поръчка');
define('HEADER_TITLE_TOP', 'Начало');
define('HEADER_TITLE_CATALOG', 'Магазин');
define('HEADER_TITLE_LOGOFF', 'Изход');
define('HEADER_TITLE_LOGIN', 'Вход');

// footer text in includes/footer.php
define('FOOTER_TEXT_REQUESTS_SINCE', 'Разгледано от');

// text for gender
define('MALE', 'Мъжки');
define('FEMALE', 'Женски');
define('MALE_ADDRESS', 'Г-н.');
define('FEMALE_ADDRESS', 'Г-жа.');

// text for date of birth example
define('DOB_FORMAT_STRING', 'mm/dd/yyyy');

// checkout procedure text
define('CHECKOUT_BAR_DELIVERY', 'Информация за доставка');
define('CHECKOUT_BAR_PAYMENT', 'Информация за плащане');
define('CHECKOUT_BAR_CONFIRMATION', 'Потвърждение');
define('CHECKOUT_BAR_FINISHED', 'Завършено!');

// pull down default text
define('PULL_DOWN_DEFAULT', 'Моля, изберете');
define('TYPE_BELOW', 'Изберете отдолу');

// javascript messages
define('JS_ERROR', 'Грешки при попълване на формата!.\n\nМоля, направете следните корекции:\n\n');

define('JS_REVIEW_TEXT', '* Полето \'Текстът на коментара\' трябва да съдържа не по-малко от ' . REVIEW_TEXT_MIN_LENGTH . ' символа.\n');

define('JS_ERROR_NO_PAYMENT_MODULE_SELECTED', '* Моля, изберете начин за плащане на вашата поръчка.\n');

define('JS_ERROR_SUBMITTED', 'Тази форма вече е изпратена. Натиснете ОК и изчакайте процесът да приключи.');

define('ERROR_NO_PAYMENT_MODULE_SELECTED', 'Моля, изберете начин за плащане на вашата поръчка.');

define('CATEGORY_COMPANY', 'Данни на фирмата');
define('CATEGORY_PERSONAL', 'Вашите лични данни');
define('CATEGORY_ADDRESS', 'Вашият адрес');
define('CATEGORY_CONTACT', 'За контакт с вас');
define('CATEGORY_OPTIONS', 'Опции');
define('CATEGORY_PASSWORD', 'Вашата парола');

define('ENTRY_COMPANY', 'Име на фирмата:');
define('ENTRY_COMPANY_TEXT', '');
define('ENTRY_GENDER', 'Пол:');
define('ENTRY_GENDER_ERROR', 'Моля, изберете пол.');
define('ENTRY_GENDER_TEXT', '*');
define('ENTRY_FIRST_NAME', 'Име:');
define('ENTRY_FIRST_NAME_ERROR', 'Вашето име трябва да съдържа минимумf ' . ENTRY_FIRST_NAME_MIN_LENGTH . ' символа.');
define('ENTRY_FIRST_NAME_TEXT', '*');
define('ENTRY_LAST_NAME', 'Фамилия:');
define('ENTRY_LAST_NAME_ERROR', 'Вашата фамиля трябва да съдържа минимум ' . ENTRY_LAST_NAME_MIN_LENGTH . ' символа.');
define('ENTRY_LAST_NAME_TEXT', '*');
define('ENTRY_DATE_OF_BIRTH', 'Дата на раждане:');
define('ENTRY_DATE_OF_BIRTH_ERROR', 'Your Date of Birth must be in this format: MM/DD/YYYY (eg 05/21/1970)');
define('ENTRY_DATE_OF_BIRTH_TEXT', '* (eg. 05/21/1970)');
define('ENTRY_EMAIL_ADDRESS', 'E-Mail адрес:');
define('ENTRY_EMAIL_ADDRESS_ERROR', 'Вашият E-Mail Address трябва да съдържа минимум ' . ENTRY_EMAIL_ADDRESS_MIN_LENGTH . ' символа.');
define('ENTRY_EMAIL_ADDRESS_CHECK_ERROR', 'Въведеният E-Mail Address изглежда, че не е валиде - моля, направете необходимите промени.');
define('ENTRY_EMAIL_ADDRESS_ERROR_EXISTS', 'Посоченият E-Mail вече съществува в базата с данни. Моля, влезте с този Е-mail aадрес или създайте нов профил.');
define('ENTRY_EMAIL_ADDRESS_TEXT', '*');
define('ENTRY_STREET_ADDRESS', 'Улица и номер:');
define('ENTRY_STREET_ADDRESS_ERROR', 'Минимум ' . ENTRY_STREET_ADDRESS_MIN_LENGTH . ' символа.');
define('ENTRY_STREET_ADDRESS_TEXT', '*');
define('ENTRY_SUBURB', 'Район:');
define('ENTRY_SUBURB_TEXT', '');
define('ENTRY_POST_CODE', 'Пощенски код:');
define('ENTRY_POST_CODE_ERROR', 'Минимум ' . ENTRY_POSTCODE_MIN_LENGTH . ' символа.');
define('ENTRY_POST_CODE_TEXT', '*');
define('ENTRY_CITY', 'Град:');
define('ENTRY_CITY_ERROR', 'Минимум ' . ENTRY_CITY_MIN_LENGTH . ' символа.');
define('ENTRY_CITY_TEXT', '*');
define('ENTRY_STATE', 'Област:');
define('ENTRY_STATE_ERROR', 'Минимум ' . ENTRY_STATE_MIN_LENGTH . ' символа.');
define('ENTRY_STATE_ERROR_SELECT', 'Моля, изберете област.');
define('ENTRY_STATE_TEXT', '*');
define('ENTRY_COUNTRY', 'Държава:');
define('ENTRY_COUNTRY_ERROR', 'Моля, изберете държава.');
define('ENTRY_COUNTRY_TEXT', '*');
define('ENTRY_TELEPHONE_NUMBER', 'Телефон:');
define('ENTRY_TELEPHONE_NUMBER_ERROR', 'Телефонният номер трябва да съдържа не по-малко от ' . ENTRY_TELEPHONE_MIN_LENGTH . ' символа.');
define('ENTRY_TELEPHONE_NUMBER_TEXT', '*');
define('ENTRY_FAX_NUMBER', 'Факс:');
define('ENTRY_FAX_NUMBER_TEXT', '');
define('ENTRY_NEWSLETTER', 'Новини:');
define('ENTRY_NEWSLETTER_TEXT', '');
define('ENTRY_NEWSLETTER_YES', 'Записване');
define('ENTRY_NEWSLETTER_NO', 'Отписване');
define('ENTRY_PASSWORD', 'Парола:');
define('ENTRY_PASSWORD_ERROR', 'Паролата трябва да съдържа не по-малко от ' . ENTRY_PASSWORD_MIN_LENGTH . ' символа.');
define('ENTRY_PASSWORD_ERROR_NOT_MATCHING', 'Полето "Потвържедение на паролата" трябва да съвпада с полето "Парола".');
define('ENTRY_PASSWORD_TEXT', '*');
define('ENTRY_PASSWORD_CONFIRMATION', 'Потвърждение на паролата:');
define('ENTRY_PASSWORD_CONFIRMATION_TEXT', '*');
define('ENTRY_PASSWORD_CURRENT', 'Настояща парола:');
define('ENTRY_PASSWORD_CURRENT_TEXT', '*');
define('ENTRY_PASSWORD_CURRENT_ERROR', 'Вашата парола трябва да съдържа минимум ' . ENTRY_PASSWORD_MIN_LENGTH . ' символа.');
define('ENTRY_PASSWORD_NEW', 'Нова парола:');
define('ENTRY_PASSWORD_NEW_TEXT', '*');
define('ENTRY_PASSWORD_NEW_ERROR', 'Вашата нова парола трябва да съдържа не по-малко от ' . ENTRY_PASSWORD_MIN_LENGTH . ' символа.');
define('ENTRY_PASSWORD_NEW_ERROR_NOT_MATCHING', 'Полето "Потвърждение на паролата" и "Нова парола" не съвпадат.');
define('PASSWORD_HIDDEN', '--СКРИТА--');

define('FORM_REQUIRED_INFORMATION', '* Задължително се попълва');

// constants for use in tep_prev_next_display function
define('TEXT_RESULT_PAGE', 'Страници:');
define('TEXT_DISPLAY_NUMBER_OF_PRODUCTS', 'Показани <b>%d</b> - <b>%d</b> (всичко <b>%d</b> позиции)');
define('TEXT_DISPLAY_NUMBER_OF_ORDERS', 'Показани <b>%d</b> - <b>%d</b> (всички <b>%d</b> поръчки)');
define('TEXT_DISPLAY_NUMBER_OF_REVIEWS', 'Показани <b>%d</b> - <b>%d</b> (всичко <b>%d</b> коментари)');
define('TEXT_DISPLAY_NUMBER_OF_PRODUCTS_NEW', 'Показани <b>%d</b> - <b>%d</b> (всички <b>%d</b> новини)');
define('TEXT_DISPLAY_NUMBER_OF_SPECIALS', 'Показани <b>%d</b> - <b>%d</b> (всички <b>%d</b> промоции)');
define('PREVNEXT_TITLE_FIRST_PAGE', 'Първа страница');
define('PREVNEXT_TITLE_PREVIOUS_PAGE', 'Предишна');
define('PREVNEXT_TITLE_NEXT_PAGE', 'Следваща страница');
define('PREVNEXT_TITLE_LAST_PAGE', 'Последна страница');
define('PREVNEXT_TITLE_PAGE_NO', 'Страница %d');
define('PREVNEXT_TITLE_PREV_SET_OF_NO_PAGE', 'Предишни %d страници');
define('PREVNEXT_TITLE_NEXT_SET_OF_NO_PAGE', 'Следващи %d страници');
define('PREVNEXT_BUTTON_FIRST', '&lt;&lt;Първа');
define('PREVNEXT_BUTTON_PREV', '[&lt;&lt;&nbsp;Предишна]');
define('PREVNEXT_BUTTON_NEXT', '[Следваща&nbsp;&gt;&gt;]');
define('PREVNEXT_BUTTON_LAST', 'ПОСЛЕДНА&gt;&gt;');

define('IMAGE_BUTTON_ADD_ADDRESS', 'Добавяне на адрес');
define('IMAGE_BUTTON_ADDRESS_BOOK', 'Адресна книга');
define('IMAGE_BUTTON_BACK', 'Назад');
define('IMAGE_BUTTON_BUY_NOW', 'Поръчай сега');
define('IMAGE_BUTTON_CHANGE_ADDRESS', 'Промяна на адрес');
define('IMAGE_BUTTON_CHECKOUT', 'Оформяне на поръчката');
define('IMAGE_BUTTON_CONFIRM_ORDER', 'Потвърждение на поръчката');
define('IMAGE_BUTTON_CONTINUE', 'Продължи');
define('IMAGE_BUTTON_CONTINUE_SHOPPING', 'Продължете с пазаруването');
define('IMAGE_BUTTON_DELETE', 'Изтрий');
define('IMAGE_BUTTON_EDIT_ACCOUNT', 'Редактиране на профил');
define('IMAGE_BUTTON_HISTORY', 'История на поръчките');
define('IMAGE_BUTTON_LOGIN', 'Вход');
define('IMAGE_BUTTON_IN_CART', 'Добави към количката');
define('IMAGE_BUTTON_NOTIFICATIONS', 'Съобщение');
define('IMAGE_BUTTON_QUICK_FIND', 'Бързо търсене');
define('IMAGE_BUTTON_REMOVE_NOTIFICATIONS', 'Изтрий съобщенията');
define('IMAGE_BUTTON_REVIEWS', 'Коментари');
define('IMAGE_BUTTON_SEARCH', 'Търсене');
define('IMAGE_BUTTON_SHIPPING_OPTIONS', 'Начин на доставка');
define('IMAGE_BUTTON_TELL_A_FRIEND', 'Споделете с приятел');
define('IMAGE_BUTTON_UPDATE', 'Обновяване');
define('IMAGE_BUTTON_UPDATE_CART', 'Обновяване на количката');
define('IMAGE_BUTTON_WRITE_REVIEW', 'Напишете коментар');

define('SMALL_IMAGE_BUTTON_DELETE', 'Изтрий');
define('SMALL_IMAGE_BUTTON_EDIT', 'Редактирай');
define('SMALL_IMAGE_BUTTON_VIEW', 'Разгледай');

define('ICON_ARROW_RIGHT', 'повече');
define('ICON_CART', 'В количката');
define('ICON_ERROR', 'Грешка');
define('ICON_SUCCESS', 'Изпълнено');
define('ICON_WARNING', 'Внимание');

define('TEXT_GREETING_PERSONAL', 'Добре дошли отново <span class="greetUser">%s!</span> Желаете ли да разгледате новите стоки <a href="%s"><u>new products</u></a> в нашият магазин?');
define('TEXT_GREETING_GUEST', 'Добре дошли <span class="greetUser">уважаеми Посетител</span><br> Ако сте наш редовен клиент, <a href="%s"><u>въведете вашите лични данни </u></a> за вход. Ако сте тук за първи път и желаете да направите поръчка, ще трябва да се <a href="%s"><u>регистрирате</u></a>.');

define('TEXT_SORT_PRODUCTS', 'Подреждане на стоките ');
define('TEXT_DESCENDINGLY', 'намаляващо');
define('TEXT_ASCENDINGLY', 'нарастващо');
define('TEXT_BY', ' по ');

define('TEXT_REVIEW_BY', 'по %s');
define('TEXT_REVIEW_WORD_COUNT', '%s думи');
define('TEXT_REVIEW_RATING', 'Рейтинг: %s [%s]');
define('TEXT_REVIEW_DATE_ADDED', 'Дата на добавяне: %s');
define('TEXT_NO_REVIEWS', 'Няма налични коментари.');

define('TEXT_NO_NEW_PRODUCTS', 'Няма налични стоки.');

define('TEXT_UNKNOWN_TAX_RATE', 'Непозната данъчна ставка');

define('TEXT_REQUIRED', '<span class="errorText">Задължително </span>');

define('ERROR_TEP_MAIL', '<font face="Verdana, Arial" size="2" color="#ff0000"><b><small>ГРЕШКА:</small> Не мога да изпратя е-mail през SMTP сървъра. Моля, проверете вашата настройка на php.ini и ако е необходимо, коригирайте SMTP сървъра.</b></font>');

define('TEXT_CCVAL_ERROR_INVALID_DATE', 'Указали сте грешна дата за изтичане на срока на валидност на кредитната карта.<br>Направете необходимите промени и опитайте отново!');
define('TEXT_CCVAL_ERROR_INVALID_NUMBER', 'Указали сте грешен номер на кредитна карта.<br>Направете необходимите промени и опитайте отново!');
define('TEXT_CCVAL_ERROR_UNKNOWN_CARD', 'Първата цифра на вашата кредитна карта е: %s<br>Ако сте я въвели правилно, Ви съобщаваме, че не приемаме разплащане с такъв тип кредитна карта.<br>Ако сте сгрешили, направете необходимите промени и опитайте отново!');

define('FOOTER_TEXT_BODY', 'Copyright &copy; ' . date('Y') . ' <a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . STORE_NAME . '</a><br />Powered by <a href="http://www.oscommerce.com" target="_blank">osCommerce</a>');
/** Econt Shipping Module BOF **/
define('MODULE_SHIPPING_ECONT_CREATEACCOUNT_STREET_NO_NUMBER_ERROR', 'Липсва номер на улица!');
define('MODULE_SHIPPING_ECONT_CREATEACCOUNT_MISSING_STREET_SUBURB_ERROR', 'Посочете улица или район!');
define('MODULE_SHIPPING_ECONT_CREATEACCOUNT_SUBURB_NO_ELSE_ERROR', 'Липсва допълнителна информация за район!');
define('MODULE_SHIPPING_ECONT_CREATEACCOUNT_STREET_NOT_VALID_ERROR', 'Невалидна улица!');
define('MODULE_SHIPPING_ECONT_CREATEACCOUNT_SUBURB_NOT_VALID_ERROR', 'Невалиден район/квартал!');
define('MODULE_SHIPPING_ECONT_CREATEACCOUNT_WRONG_CITY_POSTCODE_ERROR', 'Невалиден Град/Пощенски Код!');
/** Econt Shipping Module EOF **/
?>

 

 

Link to comment
Share on other sites

I have compared my file content with the one you have provided here and everything looks pretty much the same but just in case i have tested your code and the output its the same.

I also checked the ERROR.log and found that this error occours everytime i am searching for something no matter in what language.

[28-May-2018 16:26:45 Europe/Kiev] PHP Warning:  mysqli_connect(): Headers and client library minor version mismatch. Headers:50549 Library:100015 in CATALOG/includes/functions/database.php on line 20

The code i have found on line 20 in the DATABASE.php file is this:

$$link = mysqli_connect($server, $username, $password, $database);

 

 

 

 

Link to comment
Share on other sites

1 hour ago, MrPhil said:

I haven't looked at the code, but since it's complaining about the DATE range, perhaps the code for checking the dates is expecting a different format than what the OP is giving. If the date is all numbers, /, and/or ., that ought to be in ASCII. I assume it's not Bulgarian month names being used.

Thank you for your replay. Can you point me please where can i check if the date is the ASCII format. Also there only numbers used for selecting the date.

I have also noticed now that when i am at the advance_search page and when i complete all of the fields and clicck on search no matter in which language i still get the error FIELD DATE FROM and FIELD DATE TO not completed correctly and the date format has changed after the click from 05/01/2018 to 05012018.

Do you hava any idea where i can include / so its added after i click the search button?

Thank you in advance

 

Link to comment
Share on other sites

That sound more like a php-mysql problem! Have you ugraded your PHP? Have you migrated your database from one server to another with a diferent version of MySQL ? You may have to speek to your host to fix this.

 

Link to comment
Share on other sites

Quote

Headers and client library minor version mismatch.

Yes, I would bring that to the attention of your host. There's no point in trying to debug other stuff until something that basic is fixed.

Quote

where can i check if the date is the ASCII format

My statement concerned the character codes used to enter a date. I'm assuming that it's all ASCII (subset of UTF-8) for numbers 0-9 and whatever punctuation you're using (/, ., -, etc.). That you saw mm/dd/yyyy changed into mmddyyyy is quite interesting... are you using a date format that matches any specification given by a locale setting, or are you using non-ASCII punctuation characters? ASCII doesn't define a date format, just character encoding (it is a subset of UTF-8). The allowable date format(s) that you can use will be defined either by a locale setting (probably in a language file), or somewhere in your PHP configuration. Make sure any dates you give match up -- perhaps you can try some different formats (2018-05-28, etc.).

Link to comment
Share on other sites

After your answers guys i started searching for the reason of my problem in the extensions that i have added to the website as i could get my head around why that is happening. AND I FOUND IT!!! it was nothing to do with the platform as OScommerce is working fine. A little add on that i have added for extra security has blocked the files for search but it was blocking them only in cyrillic STRANGE. Anyway here is the code which i've added in application_top.php for extra security.

The add was "Security Pro 2.0 r11"

just above:

if ($request_type == 'NONSSL') {

I have added the following code:

  include_once('includes/modules/fwr_media_security_pro.php');
  $security_pro = new Fwr_Media_Security_Pro;
 $security_pro->cleanse( $PHP_SELF );

After i found in the instructions of the module that i can add exclusions i have added the following before  $security_pro->cleanse( $PHP_SELF );

  $security_pro->addExclusion( 'advanced_search.php' );
   $security_pro->addExclusion( 'advanced_search_result.php' );

Now everything is working perfectly.

Thank you very mych for your help and effords to solve the problem.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...