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

PHP Warning: utf8_to_unicode: | PHP Notice: Undefined index:

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

OcStore 1.5.3.1

периодически в админке вылезают 2 ошибки одновременно:

При каких действиях пользователя, понять не могу и воспроизвести ее самому не получается.

2013-05-20 5:40:05 - PHP Warning:  utf8_to_unicode: Incomplete multi-octet sequence in UTF-8 at byte 57 in /....../system/helper/utf8.php on line 765
2013-05-20 5:40:05 - PHP Notice:  Undefined index:  in /......./catalog/controller/common/seo_pro.php on line 68

 

utf8.php on line 765:

trigger_error('utf8_to_unicode: Incomplete multi-octet sequence in UTF-8 at byte ' . $i, E_USER_WARNING);

Кусок кода со строкой 765:

for($i = 0; $i < $len; $i++) {
		$in = ord($str{$i});
		
		if ($mState == 0) {
			
			// When mState is zero we expect either a US-ASCII character or a
			// multi-octet sequence.
			if (0 == (0x80 & ($in))) {
				// US-ASCII, pass straight through.
				$out[] = $in;
				$mBytes = 1;
				
			} elseif (0xC0 == (0xE0 & ($in))) {
				// First octet of 2 octet sequence
				$mUcs4 = ($in);
				$mUcs4 = ($mUcs4 & 0x1F) << 6;
				$mState = 1;
				$mBytes = 2;
				
			} elseif (0xE0 == (0xF0 & ($in))) {
				// First octet of 3 octet sequence
				$mUcs4 = ($in);
				$mUcs4 = ($mUcs4 & 0x0F) << 12;
				$mState = 2;
				$mBytes = 3;
				
			} else if (0xF0 == (0xF8 & ($in))) {
				// First octet of 4 octet sequence
				$mUcs4 = ($in);
				$mUcs4 = ($mUcs4 & 0x07) << 18;
				$mState = 3;
				$mBytes = 4;
				
			} else if (0xF8 == (0xFC & ($in))) {
				/* First octet of 5 octet sequence.
				*
				* This is illegal because the encoded codepoint must be either
				* (a) not the shortest form or
				* (b) outside the Unicode range of 0-0x10FFFF.
				* Rather than trying to resynchronize, we will carry on until the end
				* of the sequence and let the later error handling code catch it.
				*/
				$mUcs4 = ($in);
				$mUcs4 = ($mUcs4 & 0x03) << 24;
				$mState = 4;
				$mBytes = 5;
				
			} else if (0xFC == (0xFE & ($in))) {
				// First octet of 6 octet sequence, see comments for 5 octet sequence.
				$mUcs4 = ($in);
				$mUcs4 = ($mUcs4 & 1) << 30;
				$mState = 5;
				$mBytes = 6;
				
			} else {
				/* Current octet is neither in the US-ASCII range nor a legal first
				 * octet of a multi-octet sequence.
				 */
				trigger_error('utf8_to_unicode: Illegal sequence identifier ' . 'in UTF-8 at byte ' . $i, E_USER_WARNING);
				
				return FALSE;
			}
		
		} else {
			
			// When mState is non-zero, we expect a continuation of the multi-octet
			// sequence
			if (0x80 == (0xC0 & ($in))) {
				
				// Legal continuation.
				$shift = ($mState - 1) * 6;
				$tmp = $in;
				$tmp = ($tmp & 0x0000003F) << $shift;
				$mUcs4 |= $tmp;
			
				/**
				* End of the multi-octet sequence. mUcs4 now contains the final
				* Unicode codepoint to be output
				*/
				if (0 == --$mState) {
					
					/*
					* Check for illegal sequences and codepoints.
					*/
					// From Unicode 3.1, non-shortest form is illegal
					if (((2 == $mBytes) && ($mUcs4 < 0x0080)) ||
						((3 == $mBytes) && ($mUcs4 < 0x0800)) ||
						((4 == $mBytes) && ($mUcs4 < 0x10000)) ||
						(4 < $mBytes) ||
						// From Unicode 3.2, surrogate characters are illegal
						(($mUcs4 & 0xFFFFF800) == 0xD800) ||
						// Codepoints outside the Unicode range are illegal
						($mUcs4 > 0x10FFFF)) {
						
						trigger_error('utf8_to_unicode: Illegal sequence or codepoint in UTF-8 at byte ' . $i, E_USER_WARNING);
						
						return false;
						
					}
					
					if (0xFEFF != $mUcs4) {
						// BOM is legal but we don't want to output it
						$out[] = $mUcs4;
					}
					
					//initialize UTF8 cache
					$mState = 0;
					$mUcs4  = 0;
					$mBytes = 1;
				}
			
			} else {
				/**
				*((0xC0 & (*in) != 0x80) && (mState != 0))
				* Incomplete multi-octet sequence.
				*/
/*<765>*/			trigger_error('utf8_to_unicode: Incomplete multi-octet sequence in UTF-8 at byte ' . $i, E_USER_WARNING);
				
				return false;
			}
		}
	}

 

 

seo_pro.php on line 68:

$url = explode('=', $queries[$part], 2);

 

кусок кода со строкой 68:

	public function index() {
		// Add rewrite to url class
		if ($this->config->get('config_seo_url')) {
			$this->url->addRewrite($this);
		} else {
			return;
		}

		// Decode URL
		if (!isset($this->request->get['_route_'])) {
			$this->validate();
		} else {
			$route = $this->request->get['_route_'];
			unset($this->request->get['_route_']);
			$parts = explode('/', trim(utf8_strtolower($route), '/'));
			/* BEGIN Actions */
			if (preg_match('#^(actions/)(.*)#', $route, $matches)) {
				$parts = explode('/', trim(utf8_strtolower($matches[2]), '/'));
				if($parts[0] == '' AND count($parts) == 1) {
					$parts = explode('/', trim(utf8_strtolower($route), '/'));
				}
			}
			/* END Actions */
			/* BEGIN News & Reviews */
			if (preg_match('#^(news/)(.*)#', $route, $matches)) {
				$parts = explode('/', trim(utf8_strtolower($matches[2]), '/'));
				if($parts[0] == '' AND count($parts) == 1) {
					$parts = explode('/', trim(utf8_strtolower($route), '/'));
				}
			}
			/* END News & Reviews */
			list($last_part) = explode('.', array_pop($parts));
			array_push($parts, $last_part);

			$rows = array();
			foreach ($parts as $keyword) {
				if (isset($this->cache_data['keywords'][$keyword])) {
					$rows[] = array('keyword' => $keyword, 'query' => $this->cache_data['keywords'][$keyword]);
				}
			}

			if (count($rows) == sizeof($parts)) {
				$queries = array();
				foreach ($rows as $row) {
					$queries[utf8_strtolower($row['keyword'])] = $row['query'];
				}

				reset($parts);
				foreach ($parts as $part) {
/*<68>*/					$url = explode('=', $queries[$part], 2);

					if ($url[0] == 'category_id') {
						if (!isset($this->request->get['path'])) {
							$this->request->get['path'] = $url[1];
						} else {
							$this->request->get['path'] .= '_' . $url[1];
						}
					} elseif (count($url) > 1) {
						$this->request->get[$url[0]] = $url[1];
					}
				}
			/* BEGIN Actions */
			} elseif ( (isset($keyword_in[0]) AND $keyword_in[0] == 'actions') OR (isset($parts[0]) AND $parts[0] == 'actions') ) {
				$this->request->get['route'] = 'information/actions';
			/* END Actions */
			/* BEGIN News & Reviews */
			} elseif ( (isset($keyword_in[0]) AND $keyword_in[0] == 'news') OR (isset($parts[0]) AND $parts[0] == 'news') ) {
				$this->request->get['route'] = 'information/news';
			/* END News & Reviews */
			} else {
				$this->request->get['route'] = 'error/not_found';
			}
								
			if (isset($this->request->get['product_id'])) {
				$this->request->get['route'] = 'product/product';
				if (!isset($this->request->get['path'])) {
					$path = $this->getPathByProduct($this->request->get['product_id']);
					if ($path) $this->request->get['path'] = $path;
				}
			} elseif (isset($this->request->get['path'])) {
				$this->request->get['route'] = 'product/category';
			} elseif (isset($this->request->get['manufacturer_id'])) {
				$this->request->get['route'] = 'product/manufacturer/product';
			} elseif (isset($this->request->get['information_id'])) {
				$this->request->get['route'] = 'information/information';
			/* BEGIN Actions */
			} elseif (isset($this->request->get['actions_id'])) {
				$this->request->get['route'] = 'information/actions';
			/* END Actions */
			/* BEGIN News & Reviews */
			} elseif (isset($this->request->get['news_id'])) {
				$this->request->get['route'] = 'information/news';
			/* END News & Reviews */
			
			} else {
				if (isset($queries[$parts[0]])) {
					$this->request->get['route'] = $queries[$parts[0]];
				}
			}


			$this->validate();

			if (isset($this->request->get['route'])) {
				return $this->forward($this->request->get['route']);
			}
		}
	}

 

Подскажите где копать.

Все файла сохранены в кодировке UTF-8(без ВОМ)

 

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


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

Знатоки, ну разжуйте мне, пожаста, доходчиво что это за ДВЕ ошибки.

2013-05-20 5:40:05 - PHP Warning:  utf8_to_unicode: Incomplete multi-octet sequence in UTF-8 at byte 57 in /....../system/helper/utf8.php on line 765
2013-05-20 5:40:05 - PHP Notice:  Undefined index:  in /......./catalog/controller/common/seo_pro.php on line 68 

 

Каждый день появляются в Админке в журнале ошибок и всегда вместе

В Гугле вразумительного ничего не нашел. :oops:

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


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

Присоединяюсь,у меня тоже самое на ocstore 1.5.4.1, чпу включено, seopro выключен.

 

 

2013-05-27 14:20:46 - PHP Warning: utf8_to_unicode: Incomplete multi-octet sequence in UTF-8 at byte 4 in /home/din54/dinaudio.ru/docs/system/helper/utf8.php on line 765
2013-05-27 14:20:47 - PHP Warning: utf8_to_unicode: Incomplete multi-octet sequence in UTF-8 at byte 4 in /home/din54/dinaudio.ru/docs/system/helper/utf8.php on line 765
2013-05-28 9:25:35 - PHP Warning: unlink(/home/din54/dinaudio.ru/docs/system/cache/cache.currency.1369687333) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /home/din54/dinaudio.ru/docs/system/library/cache.php on line 18

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


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

Тоже самое и меня мучает уже с год, решения пока найти не смог, проблема с кодировкой это понятно но при переводе в ютф8 файла сео то пропадает капча, нашол решение с капчей но ошибка всё равно периодически вылазит(

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


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

Присоединяюсь к вопросу! У меня ocStore 1.5.4.1 Периодически в журнале ошибок выскакивает вместе две ошибки:

2013-07-19 4:52:49 - PHP Warning:  utf8_to_unicode: Incomplete multi-octet sequence in UTF-8 at byte 61 in /home/modnamam/domains/modnamama.com.ua/public_html/system/helper/utf8.php on line 765
2013-07-19 4:52:49 - PHP Notice:  Undefined index:  in /home/modnamam/domains/modnamama.com.ua/public_html/vqmod/vqcache/vq2-catalog_controller_common_seo_pro.php on line 60

Спецы, не проходите мимо, помогите решить проблему! :mellow:

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


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

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

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


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

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

А что с поиском? о_0

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


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

Тоже самое ловил у себя сначала на 1.5.2.1, а после обновления на 1.5.4.1 - и на ней. Причины выяснить не удалось - вроде такая ошибка может вылазить, когда файлы не в утф8 сохранены, но не могу найти что именно не так

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


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

Эти ошибки появляется после перехода по такому урл  домен.ру/%EA%E8%ED%E4%E5%F0/

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


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

Эти ошибки появляется после перехода по такому урл  домен.ру/%EA%E8%ED%E4%E5%F0/

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

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


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

только при переходе в магазин по ссылке в cp1251.

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


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

только при переходе в магазин по ссылке в cp1251.

 

Доброй ночи, объясните пожалуйста что это значит? только при переходе в магазин по ссылке в cp1251.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Techno1og
      Есть несколько ошибок, хочу разобраться в чем причина и почему они появились.
       
      1. 2018-08-05 11:41:14 - PHP Notice:  Undefined variable: category_id in /home/d/.../.../public_html/catalog/view/theme/.../template/product/search.tpl on line 31
       
      2.
      2018-08-09 23:24:45 - PHP Notice:  Undefined variable: category_id in /home/d/.../.../public_html/vqmod/vqcache/vq2-catalog_view_theme_..._template_product_search.tpl on line 31
      2018-08-09 23:24:45 - PHP Notice:  Undefined variable: category_id in /home/d/.../.../public_html/vqmod/vqcache/vq2-catalog_view_theme_..._template_product_search.tpl on line 37
       
       
    • От white130489
      Добрый день!
      Помогите, пожалуйста, устранить ошибки:
       
      PHP Notice:  Undefined variable: customer_name in /home/smolamne/public_html/vqmod/vqcache/vq2-catalog_view_theme_default2_template_product_product.tpl on line 313
      PHP Warning:  mysql_real_escape_string() expects parameter 1 to be string, array given in /home/smolamne/public_html/system/database/mysql.php on line 58
      PHP Notice:  Undefined variable: category_id in /home/smolamne/public_html/catalog/view/theme/default2/template/product/search.tpl on line 20
    • От leonamx
      Добрый день! Помогите пожалуйста с ошибкой я так понимаю в файле information.php.
      Страница выдает ошибку Notice: Undefined index: date_modified in /var/www/user/data/www/mydomen.ru/system/storage/modification/catalog/controller/information/information.php on line 47
       
      Ocstore 2.3.0.2 Шаблон от octemplates shop-store
      Спасибо!!!
    • От xtez1
      Здравствуйте, Версия ocStore 2.1.0.2, модуль - OCtemplates новости
      ошибка такого содержания, подскажите решение пожалуйста, файлик blog_list.tpl прилагается.
       
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'value' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 111
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'href' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 114
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'text' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 114
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'value' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 111
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'href' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 114
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'text' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 114
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'value' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 111
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'href' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 114
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'text' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 114
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'value' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 125
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'href' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 128
      2016-04-28 1:16:50 - PHP Warning:  Illegal string offset 'text' in /home/yamarket/applejuice.in.ua/www/catalog/view/theme/coloring/template/product/blog_list.tpl on line 128
  • Последние посетители   0 пользователей онлайн

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

×

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

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