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

[Решено {кодировка}] помогите разобраться с контоллером


ks1313

Recommended Posts

добрый день! я полный профан вообще. блондинистая блондинка.

вот эскперементирую, создаю для себя свой сайт сама.

образовалась проблема.

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

выдает следующее:

 

Warning: Cannot modify header information - headers already sent by (output started at home/h77777/data/www/мой сайт.com/catalog/language/russian/russian.php:1) in /home/h77777/data/www/мой сайт.com/system/engine/controller.php on line 28Warning: Cannot modify header information - headers already sent by (output started at /home/h77777/data/www/мой сайт.com/catalog/language/russian/russian.php:1) in home/h77777/data/www/мой сайт.com/system/engine/controller.php on line 29

 

насколько я понимаю это проблема с этим файлом. перешла по пути. на для меня это просто ребус. помогите, что неправильно в коде. как поправить ситуацию. и возможно ли это?!

 

что в этих строчках не так. цифр по идее не должно там быть, но что должно?!

 

 }

protected function redirect($url, $status = 302) {
header('Status: ' . $status);
header('Location: ' . str_replace(array('&', "\n", "\r"), array('&', '', ''), $url));
exit();
}

 

заранее благодарю за ответ))) если кто-то захочет помочь))))

 

вот сам код:

 

<?php
abstract class Controller {
 protected $registry; 
 protected $id;
 protected $layout;
 protected $template;
 protected $children = array();
 protected $data = array();
 protected $output;
 
 public function __construct($registry) {
  $this->registry = $registry;
 }
 
 public function __get($key) {
  return $this->registry->get($key);
 }
 
 public function __set($key, $value) {
  $this->registry->set($key, $value);
 }
   
 protected function forward($route, $args = array()) {
  return new Action($route, $args);
 }

 protected function redirect($url, $status = 302) {
  header('Status: ' . $status);
  header('Location: ' . str_replace(array('&', "\n", "\r"), array('&', '', ''), $url));
  exit();    
 }
 
 protected function getChild($child, $args = array()) {
  $action = new Action($child, $args);
 
  if (file_exists($action->getFile())) {
   require_once($action->getFile());

   $class = $action->getClass();

   $controller = new $class($this->registry);

   $controller->{$action->getMethod()}($action->getArgs());
   
   return $controller->output;
  } else {
   trigger_error('Error: Could not load controller ' . $child . '!');
   exit();     
  }  
 }
 
 protected function render() {
  foreach ($this->children as $child) {
   $this->data[basename($child)] = $this->getChild($child);
  }
  
  if (file_exists(DIR_TEMPLATE . $this->template)) {
   extract($this->data);
   
        ob_start();
     
     require(DIR_TEMPLATE . $this->template);
     
     $this->output = ob_get_contents();

        ob_end_clean();
        
   return $this->output;
     } else {
   trigger_error('Error: Could not load template ' . DIR_TEMPLATE . $this->template . '!');
   exit();    
     }
 }
}
?>

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


Если в этих строчках кода вы ничего не меняли, значит проблема не здесь, а немного раньше. Здесь выполняется редирект(функция header). Эта функция работает только если перед ее вызовом не было ни каких выводов(это может быть все что угодно, пустые строки, теги, ошибки). А у вас явно перед ее вызовом идет какой-то вывод. Вспомните что последнее делали до появления ошибки.

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

https://opencartforum.com/topic/15992-strannyi-kod-v-iazykovom-faile-russianphp/?hl=russian.php

 

приложите исходник своего файла

/home/h77777/data/www/мой сайт.com/catalog/language/russian/russian.php
Надіслати
Поділитися на інших сайтах

нашла, в чем была проблема. видимо как-то не так изменила /catalog/language/russian/russian.php

хотела заменить, "купить" на "в корзину"

заменила только 25 строчку ($_['button_cart']         = 'В корзину';), но почему все перестало работать. делала по инструкции, о изменениях где-то еще никто не говорил.

в общем, max201181, спасибо Вам огромное за отклик! жаль только, что надпись пришлось вернуть

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


Пожалуйста) Я тоже исправлял "В корзину":

$_['button_cart'] = 'В корзину';

 

Все работает нормально, когда сохраняете файл, проверяйте, чтобы кодировка стояла UTF-8

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

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

afwollis, спасибо, и Вам за отклик! приятно, что если что, в Донецке есть к кому обратиться

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


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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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