Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Проблема с кодировкой в поиске


Recommended Posts

по дефолту, аякс - поиск так же не предусмотрен в сборке ocstore, так что признавайтесь, какие файлы добавляли\изменяли\заменяли... 

Надіслати
Поділитися на інших сайтах

был куплен шаблон Bigshop .. может в нем где то копать? пересохранил все файлы без бум, не помогло

<link rel="stylesheet" type="text/css" href="catalog/view/theme/bigshop/stylesheet/jquery.autocomplete.css" />
<script type="text/javascript">
$(document).ready(function() {	
	$("#filter_name").autocomplete("getdata.php?lan=<?php echo $_SESSION['language']; ?>", {
		width: 260,
		matchContains: true,
		selectFirst: true
	});
							   
});
</script>
удалил кусок кода... что в нем поправить, что бы кракозябры не лезли?
Надіслати
Поділитися на інших сайтах

вот здесь собака зарыта (предположительно): getdata.php

покажите этот файл...

<?php
include('config.php');
$link = mysql_connect(DB_HOSTNAME,DB_USERNAME,DB_PASSWORD);
if (!$link) {
  die('Could not connect: ' . mysql_error());
}
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $link);

if (!mysql_select_db(DB_DATABASE)) {
  echo "Unable to select mydbname: " . mysql_error();
  exit;
}

if(isset($_REQUEST['q']) && $_REQUEST['q']!=''){
       
   $q = mysql_real_escape_string($_REQUEST['q']);
   
   $lan = mysql_real_escape_string($_REQUEST['lan']);
   
   $sql = "select language_id from " . DB_PREFIX . "language where code = '".$lan."'";
   $res = mysql_query($sql);
   $row = mysql_fetch_array($res);
   
   $id = $row['language_id'];
   
   if(!isset($id)){ $id = 1; }
   
   $sql = "SELECT pd.name FROM " . DB_PREFIX . "product p," . DB_PREFIX . "product_description pd WHERE p.status = 1 AND p.product_id = pd.product_id AND language_id = '".$id."' AND UPPER(pd.name) like UPPER('%$q%') GROUP BY pd.product_id ORDER BY pd.name ASC";
   $res = mysql_query($sql);
   if(mysql_num_rows($res)>0){
       while($ro = mysql_fetch_assoc($res)){
           
           $name = str_replace( array( '\'', '"', ',' , ';', '<', '>','&quot','&'), ' ', $ro['name']);
       //$str[]= $name."\n";
	   echo $name."\n";
       }
   }    
   //echo json_encode($str);
}

?>
Надіслати
Поділитися на інших сайтах

UTF-8

попробуйте пот это

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $link);

закоментить

а вот сюда 

if (!mysql_select_db(DB_DATABASE)) {

  echo "Unable to select mydbname: " . mysql_error();

  exit;

}

mysql_query("SET NAMES cp1251"); // добавить это, не поможет, поставить utf8, не поможет, проверить кодировку в саймой таблице

if(isset($_REQUEST['q']) && $_REQUEST['q']!=''){

 

 

Судя по кракозябрам, похоже, что база отдает cp1251.

Надіслати
Поділитися на інших сайтах


в базе априори utf8_general_ci, пишу, что лучше - использовать адекватный модуль, чем править говнокод а потом ещё косяки править...

Надіслати
Поділитися на інших сайтах

в базе априори utf8_general_ci, пишу, что лучше - использовать адекватный модуль, чем править говнокод а потом ещё косяки править...

utf8_general_ci  это ,сопоставление, сами символы могут находится в той кодировке, в которой их туда записали. Как правило такие проблемы появляются после экспорта/инпорта дампа.

Надіслати
Поділитися на інших сайтах


utf8_general_ci  это ,сопоставление, сами символы могут находится в той кодировке, в которой их туда записали. Как правило такие проблемы появляются после экспорта/инпорта дампа.

Вот такой ответ вас устроит ? (драйвер подключения к базе):

6b89904c45.jpg

Надіслати
Поділитися на інших сайтах

Да мне собственно все равно.. просто mysql.php и getdata.php разные подключения. Судя по этому форуму http://themeforest.net/item/bigshop-multipurpose-responsive-opencart-theme/3255847/comments?page=11

проблема действительно существует и автор вроде как пока ничего не правил. Думаю надо как то костылить или, как вы говорите, использовать другой модуль, но за этот вроде как заплачено..

Змінено користувачем afwollis
Надіслати
Поділитися на інших сайтах


заплачено - дрючьте автора.

<?php
include('config.php');
...
>>

<?php
include('config.php');
echo "<meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />";
...
Надіслати
Поділитися на інших сайтах

я бы за такое, пальцы лобзиком ампутировал... это не joomla, тут есть строгая архитектура MVC и пихать всё в одну сплошную массу, используя прямые запросы минуя системные классы, как минимум - неграмотно.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.