Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


 Share

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();    
     }
 }
}
?>

Link to comment
Share on other sites


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

Link to comment
Share on other sites

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

Link to comment
Share on other sites


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

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

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

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

Link to comment
Share on other sites


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

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

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

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.