[Помогите] Пропала капча в отзывах !

Тема в разделе "OpenCart", создана пользователем severvel, 20 янв 2014.

  1. severvel

    severvel

    Регистрация:
    24 ноя 2013
    Сообщения:
    63
    Симпатии:
    9
    Доброго времени суток!
    вот только сейчас заметил, что в отзывах нет картинки с кодом (капча).
    в логах вот такая ошибка есть:
    PHP Warning: Cannot modify header information - headers already sent by (output started at /home/promotop/domains/z-ledy.ru/public_html/catalog/language/russian/russian.php:1) in /home/*****/domains/****/public_html/system/library/captcha.php on line 40

    Помогите пожалуйста разобраться!
     
  2. Yoda

    Yoda

    Регистрация:
    5 фев 2013
    Сообщения:
    122
    Симпатии:
    22
    Просмотрите внимательно файлы, на которые указывает ошибка. Возможно, какие-нибудь левые символы в начале или конце файла, или не в той кодировке сохранено
     
  3. severvel

    severvel

    Регистрация:
    24 ноя 2013
    Сообщения:
    63
    Симпатии:
    9
    Проверил файлы вроде как все в порядке, на всякий случай перезалил новый из дистрибутива.
    Еще одну ошибку в логах увидел:
    PHP Warning: Cannot modify header information - headers already sent by (output started at /home/promotop/domains/z-ledy.ru/public_html/catalog/language/russian/russian.php:1) in /home/promotop/domains/z-ledy.ru/public_html/system/library/currency.php on line 45

    Может у кого есть какие предположения по этим ошибкам?
     
  4. dofus

    dofus

    Регистрация:
    21 апр 2013
    Сообщения:
    170
    Симпатии:
    29
    Покажи 45 строку из этого файла, а лучше весь файл)
     
  5. severvel

    severvel

    Регистрация:
    24 ноя 2013
    Сообщения:
    63
    Симпатии:
    9
    Вот 45 строка:
    setcookie('currency', $currency, time() + 60 * 60 * 24 * 30, '/', $this->request->server['HTTP_HOST']);

    Вот файл:
    PHP:
    <?php
    class Currency {
          private 
    $code;
          private 
    $currencies = array();
     
          public function 
    __construct($registry) {
            
    $this->config $registry->get('config');
            
    $this->db $registry->get('db');
            
    $this->language $registry->get('language');
            
    $this->request $registry->get('request');
            
    $this->session $registry->get('session');
           
            
    $query $this->db->query("SELECT * FROM " DB_PREFIX "currency");

            foreach (
    $query->rows as $result) {
                  
    $this->currencies[$result['code']] = array(
                    
    'currency_id'   => $result['currency_id'],
                    
    'title'         => $result['title'],
                    
    'symbol_left'   => $result['symbol_left'],
                    
    'symbol_right'  => $result['symbol_right'],
                    
    'decimal_place' => $result['decimal_place'],
                    
    'value'         => $result['value']
                  );
            }
           
            if (isset(
    $this->request->get['currency']) && (array_key_exists($this->request->get['currency'], $this->currencies))) {
                
    $this->set($this->request->get['currency']);
            } elseif ((isset(
    $this->session->data['currency'])) && (array_key_exists($this->session->data['currency'], $this->currencies))) {
                  
    $this->set($this->session->data['currency']);
            } elseif ((isset(
    $this->request->cookie['currency'])) && (array_key_exists($this->request->cookie['currency'], $this->currencies))) {
                  
    $this->set($this->request->cookie['currency']);
            } else {
                  
    $this->set($this->config->get('config_currency'));
            }
          }
       
          public function 
    set($currency) {
            
    $this->code $currency;

            if (!isset(
    $this->session->data['currency']) || ($this->session->data['currency'] != $currency)) {
                  
    $this->session->data['currency'] = $currency;
            }

            if (!isset(
    $this->request->cookie['currency']) || ($this->request->cookie['currency'] != $currency)) {
                  
    setcookie('currency'$currencytime() + 60 60 24 30'/'$this->request->server['HTTP_HOST']);
            }
          }

          public function 
    format($number$currency ''$value ''$format true) {
            if (
    $currency && $this->has($currency)) {
                  
    $symbol_left   $this->currencies[$currency]['symbol_left'];
                  
    $symbol_right  $this->currencies[$currency]['symbol_right'];
                  
    $decimal_place $this->currencies[$currency]['decimal_place'];
            } else {
                  
    $symbol_left   $this->currencies[$this->code]['symbol_left'];
                  
    $symbol_right  $this->currencies[$this->code]['symbol_right'];
                  
    $decimal_place $this->currencies[$this->code]['decimal_place'];
               
                
    $currency $this->code;
            }

            if (
    $value) {
                  
    $value $value;
            } else {
                  
    $value $this->currencies[$currency]['value'];
            }

            if (
    $value) {
                  
    $value = (float)$number $value;
            } else {
                  
    $value $number;
            }

            
    $string '';

            if ((
    $symbol_left) && ($format)) {
                  
    $string .= $symbol_left;
            }

            if (
    $format) {
                
    $decimal_point $this->language->get('decimal_point');
            } else {
                
    $decimal_point '.';
            }
           
            if (
    $format) {
                
    $thousand_point $this->language->get('thousand_point');
            } else {
                
    $thousand_point '';
            }
           
            
    $string .= number_format(round($value, (int)$decimal_place), (int)$decimal_place$decimal_point$thousand_point);

            if ((
    $symbol_right) && ($format)) {
                  
    $string .= $symbol_right;
            }

            return 
    $string;
          }
       
          public function 
    convert($value$from$to) {
            if (isset(
    $this->currencies[$from])) {
                
    $from $this->currencies[$from]['value'];
            } else {
              return 
    0;
            }
           
            if (isset(
    $this->currencies[$to])) {
                
    $to $this->currencies[$to]['value'];
            } else {
                return 
    0;
            }       
           
            return 
    $value * ($to $from);
          }
       
          public function 
    getId($currency '') {
            if (!
    $currency) {
                return 
    $this->currencies[$this->code]['currency_id'];
            } elseif (
    $currency && isset($this->currencies[$currency])) {
                return 
    $this->currencies[$currency]['currency_id'];
            } else {
                return 
    0;
            }
          }
       
        public function 
    getSymbolLeft($currency '') {
            if (!
    $currency) {
                return 
    $this->currencies[$this->code]['symbol_left'];
            } elseif (
    $currency && isset($this->currencies[$currency])) {
                return 
    $this->currencies[$currency]['symbol_left'];
            } else {
                return 
    '';
            }
          }
       
        public function 
    getSymbolRight($currency '') {
            if (!
    $currency) {
                return 
    $this->currencies[$this->code]['symbol_right'];
            } elseif (
    $currency && isset($this->currencies[$currency])) {
                return 
    $this->currencies[$currency]['symbol_right'];
            } else {
                return 
    '';
            }
          }
       
        public function 
    getDecimalPlace($currency '') {
            if (!
    $currency) {
                return 
    $this->currencies[$this->code]['decimal_place'];
            } elseif (
    $currency && isset($this->currencies[$currency])) {
                return 
    $this->currencies[$currency]['decimal_place'];
            } else {
                return 
    0;
            }
          }
       
          public function 
    getCode() {
            return 
    $this->code;
          }
     
          public function 
    getValue($currency '') {
            if (!
    $currency) {
                return 
    $this->currencies[$this->code]['value'];
            } elseif (
    $currency && isset($this->currencies[$currency])) {
                return 
    $this->currencies[$currency]['value'];
            } else {
                return 
    0;
            }
          }
       
          public function 
    has($currency) {
            return isset(
    $this->currencies[$currency]);
          }
    }
    ?>
     
  6. Volsky

    Volsky

    Регистрация:
    22 ноя 2012
    Сообщения:
    191
    Симпатии:
    11
    Просто перезалей стандартный файл: /system/library/captcha.php
     
  7. NinoZombie

    NinoZombie

    Регистрация:
    27 окт 2013
    Сообщения:
    223
    Симпатии:
    61
    Это же не ошибки, а ворнинги. Они не могут на работоспособность каптчи повлиять.
    Я бы тоже посоветовал перезалить стандартный файл капчи.

    Да и вообще - зачем она Вам? так уж боитесь нашествия спамеров? Во многих случаях она не только плохих спамеров останавливает...
     
  8. severvel

    severvel

    Регистрация:
    24 ноя 2013
    Сообщения:
    63
    Симпатии:
    9
    Да по сути дела она и не нужна, но без нее невозможно оставить отзыв.
    Пишет, что: "Код, указанный на картинке, введен неверно!"
    Файлы перезалил, не помогло(