Jump to content
Sign in to follow this  
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();    
     }
 }
}
?>

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Ronni10
      Как в /catalog/model/extension/total/shipping.php обратиться к продуктам в корзине? K $this->cart->getProducts(). Opencart 2.3
    • By VickoF
      Добрый день. У меня в классе продукта есть метод кототрый импортирует нужные товары, записей много и постоянно выскакивает ошибка таймаута. Решено запускать скрипт через консоль по ssh. Подскажите как в таком случае вызвать нужный контролер и в нем метод? Кто занимался подобным?
    • By Granled
      Здравствуйте составил вот такой запрос к базе данных (необходимо иметь возможность быстро редактировать сумму заказа из формы заказа):
      $tsum = $this->db->query("SELECT total FROM oc_order WHERE order_id=414");
      Как подставить в него id мне более менее понятно, сама база с запроса возвращает правильные данные.
      Вопрос - правильно ли я сделал запрос, так как шаблон переменную не возвращает. Пишет Undefined variable , как ее сделать правильно?
      И вообще можно ли лезть в базу данных с контроллера, или только в модели?
    • By Granled
      Нужно прописать и вывести в админку новую переменную, конкретно в форме изменения заказа (версия 2.3)
      Вроде бы все просто, берем контроллер /admin/controller/sale/order.php и пишем в нем к примеру data['переменная'] = $this-> 'значение'; после public function getForm() {
      Далее пишем в файле шаблона <?php echo $переменная; ?> и дело сделано, переменная обозначена. Но я видимо делаю что то не так, так как вижу Notice: Undefined variable.
      Что я делаю не так и как это сделать правильно?
    • By GoldenScrew
      Здравствуйте,
      создавая свой контроллер, подключил загрузил в него уже существующий
       
       
      в подключенном контроллере есть переменная
       
       
      как теперь мне получить значение переменной $data['test']?
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.