opencart errors 2

Често срещани грешки в OpenCart и различни решения за отстраняването им – Втора част

Продължаваме с друга група често срещани грешки в OpenCart и ефективни решения за отстраняването им.

3. Грешка тип Недефинирана функция/метод (Undefined Function / Method)

Ако получите “Fatal error: Call to undefined function” или “Fatal error: Call to undefined method”, това означава че се опитвате да извикате функция/ метод, които не съществуват. Това често се случва, когато файлът не е качен правилно или разширението не е съвместимо с вашата версия на OpenCart; или просто наистина не съществува. Тук ще се опитам да класифицирам проблема, базиран на съобщението за грешка.

Вариант на грешката:

Отнасяща се до основните файлове на OpenCart

  • Fatal error: Call to undefined function utf8_strlen() in /path/public_html/system/helper/utf8.php on line 39
  • Fatal error: Call to undefined method Customer::isLogged() in /path/public_html/catalog/model/catalog/product.php on line 8
  • Warning: require_once(/path/public_html/system/library/customer.php) [function.require-once]: failed to open stream: No such file or directory in /path/public_html/index.php on line 22
  • Fatal error: require_once() [function.require]: Failed opening required ‘/path/public_html/system/library/customer.php’ (include_path=’.:/usr/lib/php’) in /path/public_html/index.php on line 22

Отнасяща се до vQmod файлове

  • Fatal error: Call to undefined method ModelAccountCustomer::getPaymentAddress() in /path/public_html/vqmod/vqcache/vq2-catalog_controller_checkout_confirm.php on line 38

Отнасяща се до PHP вградени функции

  • Fatal error: Call to undefined function imagecreatefromjpeg() in /path/public_html/system/library/image.php on line 34
  • Fatal error: Call to undefined function mysql_connect() in /path/public_html/system/database/mysql.php on line 6
Решение

Отнасяща се до основните файлове на OpenCart

  1. Някои файлове не са качени или са повредени в процеса на качване. Качете отново файловете на сървъра с ASCII мод, не двуичен.
  2. В някои случаи, грешката се появява, защото файлът на сървъра не е конфигуриран правилно в config.php. Проверете отново файла на сървъра в config.php и admin/cofig.php
  3. “Warning/ Fatal error: require_once” означава, че файлът не е достъпен. Трябва да качите отново споменатия в съобщението за грешка файл или да поправите файла на сървъра в config.php, както е описано по-горе.

opencart errors 2

Отнасяща се до vQmod файлове

  1. vQmod файловете да генерират ново каше от разширенията vQmod файлове. Проверете разрешението на vqmod/cache папката, бъдете сигурни, че позволява записване и изчистете всички каше файлове.
  2. Позволен / непозволен един по един файловете vQmod, които имате. Когато установите причината, свържете се с поддръжката на OpenCart.
  3. Разширението не е съвместимо с вашата версия на OpenCart или има бъг. Свържете се с поддръжката на OpenCart.

Отнасяща се до PHP вградени функции

  1. PHP има много вградени функции, които може да проверите тук. Грешки, отнасящи се до PHP вградени функции са проблеми в сървъра. Свържете се с хостинг оператора, за да разрешите проблема.

4. Грешка тип Headers Already Sent

Грешката “headers already sent” се получава веднага след инсталиране, модифициране, обновяване на OpenCart или vQmod файлове. Разполагате с добър справочник обясняващ проблема.

Вариант на грешката:
  • Warning: Cannot modify header information – headers already sent by (output started at /path/public_html/config.php:31) in /path/public_html/index.php on line 175.
  • Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at /path/public_html/config.php:31) in /path/public_html/system/library/session.php on line 11.
  • Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /path/public_html/config.php:31) in /path/public_html/system/library/session.php on line 11.
Решение:

Качете файла с посочената грешка, след което приложете решението, посочено долу:

  1. Премахнете интервалите в началото и в края на файла.
    123??<?php //contain spaceecho „remove all space or line-break before <?php and after ?>“;?>
  2. Запаметете отново файла с Notepad++ или друг едитор (кодирайте файла с ANSI или UTF-8 без BOM).
  3. Качете го отново на сървъра с FTP в ASCII мод, не двуичен.

5. Грешка тип Session Issue

PHP сесиите съхраняват информацията за потребителя на сървъра за по-късна употреба (например статус за влизане в системата, закупени стоки и др) в заявките на страниците. Сесията представлява временна информация, която бива изтрита, след като потребителят напусне сайта. OpenCart използва сесии в много аспекти, като статус за логване, количка за пазаруване, сравняване на продукти и т.н. В повечето случаи, проблем в сесията ще предизвика съобщение за грешка. Понякога се случва и да не се появи никакво съобщение. За да разпознаете грешката, ето някои индикации за проблем в сесията:

  1. Продукт в количката е изчезнал от само себе си.
  2. Продукт в количката се е изтрил, след като потребителят е влезнал в системата.
  3. Няма съхранени продукти за сравняване.
  4. OpenCart администратор непрекъснато изисква от вас да влезете в системата, със съобщението “Invalid token session. Please login again”.
Вариант на грешката:
  • Warning: session_start () [function.session-start]: open (/tmp/sess_41abirkdiesf9efwej46wtib2, O_RDWR) failed: No such file or directory (2) in /path/public_html/system /library /session.php on line 11
  • Warning: session_start () [function.session-start]: open (/tmp/sess_41abirkdiesf9efwej46wtib2, O_RDWR) failed: Permission denied (13) in /path/public_html/system /library /session.php on line 11
  • Warning: session_start() [function.session-start]: open(/tmp/sess_41abirkdiesf9efwej46wtib2, O_RDWR) failed: No space left on device (28) in /path/public_html/upload/system/library/session.php on line 11
Решение:

Не съществува такъв файл или проблем в директорията

  1. Отворете php.ini и добавете посоченият по-долу код:
    1session.save_path = /tmp;
  2. Ако горното решение не проработи, свържете се с хоста и ги попитайте как да настроите файла session.save_path.

Други грешки

  1. “Permission denied”, Поискайте от хостинга да провери разрешението на директорията за сесията.
  2. “No space left on device”, попитайте хостинга дали е проблем на сървъра или трябва да разширите хостинг пространството.
Често срещани грешки в OpenCart и различни решения за отстраняването им – Втора част
5 (100%) 3 votes

4 replies
  1. Ганчо Тодоров says:

    Здравей!
    Забелязах, че често ми излизат следните две съобщения за грешки в магазина:

    PHP Warning: utf8_to_unicode: Incomplete multi-octet sequence in UTF-8 at byte 5 in /home/*/public_html/system/helper/utf8.php on line 769
    PHP Warning: utf8_to_unicode: Illegal sequence identifier in UTF-8 at byte 0 in /home/*/public_html/system/helper/utf8.php on line 711

    Имаш ли представа на какво се дължат? Става дума за магазин на OpenCart Версия 1.5.1.3, но доколкото четох във форумите и в други версии се получава подобен проблем.

    Отговор
    • Elenkov says:

      Здравейте,

      Къде се хоства сайта?
      Провер си chmod на папка 755 и 644 файловете.
      Свали файла: public_html/system/helper/utf8.php и го отвори с Notepad++ виж му енкодинга и кажи какъв е.
      Има ли допълнителни модули на сайта и какви?
      Ползваш ли vqmod ? От кога се появява тази грешка?
      Ще очаквам отговор, за да решим казуса ти.

      Поздрави,
      Николай Еленков

      Отговор
      • Ганчо Тодоров says:

        Сайтът се хоства на сървър на Superhostng.bg.
        И папката, и файловете са с посочените разрешения – 0755 за папката и 0644 за файловете.
        Code-page е UTF-8.
        Допълнителни модули:
        Facebook Like Box
        Special Price Countdown
        Zopim Live Chat
        Ползвам vqmod, но в log-файла не дава никакви грешки.

        Отговор
        • Elenkov says:

          Възможно ли е да получа достъп до сайта, за да погледна файловата структура и админ панела?

          Поздрави,
          Николай

          Отговор

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *