Перейти к содержанию
koreshok

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

Рекомендуемые сообщения

post-22469-0-55891400-1423644560_thumb.jpg

ну в общем суть на скриншоте.. подскажите где поправить. 

версия 15112 сторонних модулей поиска не стоит

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по дефолту, аякс - поиск так же не предусмотрен в сборке 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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот здесь собака зарыта (предположительно): 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);
}

?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
"getdata.php?lan=<?php echo $_SESSION['language']; ?>"
"getdata.php?lan=".<?php echo $_SESSION['language']; ?>

Нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сам файл getdata.php -  пример "быдлокодинга"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сайт в какой кодировке работает? cp1251 ?

UTF-8

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.