Често срещани грешки в 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
- Някои файлове не са качени или са повредени в процеса на качване. Качете отново файловете на сървъра с ASCII мод, не двуичен.
- В някои случаи, грешката се появява, защото файлът на сървъра не е конфигуриран правилно в config.php. Проверете отново файла на сървъра в config.php и admin/cofig.php
- “Warning/ Fatal error: require_once” означава, че файлът не е достъпен. Трябва да качите отново споменатия в съобщението за грешка файл или да поправите файла на сървъра в config.php, както е описано по-горе.
Отнасяща се до vQmod файлове
- vQmod файловете да генерират ново каше от разширенията vQmod файлове. Проверете разрешението на vqmod/cache папката, бъдете сигурни, че позволява записване и изчистете всички каше файлове.
- Позволен / непозволен един по един файловете vQmod, които имате. Когато установите причината, свържете се с поддръжката на OpenCart.
- Разширението не е съвместимо с вашата версия на OpenCart или има бъг. Свържете се с поддръжката на OpenCart.
Отнасяща се до PHP вградени функции
- 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.
Решение:
Качете файла с посочената грешка, след което приложете решението, посочено долу:
- Премахнете интервалите в началото и в края на файла.
123 <?php //contain spaceecho „remove all space or line-break before <?php and after ?>“;?> - Запаметете отново файла с Notepad++ или друг едитор (кодирайте файла с ANSI или UTF-8 без BOM).
- Качете го отново на сървъра с FTP в ASCII мод, не двуичен.
5. Грешка тип Session Issue
PHP сесиите съхраняват информацията за потребителя на сървъра за по-късна употреба (например статус за влизане в системата, закупени стоки и др) в заявките на страниците. Сесията представлява временна информация, която бива изтрита, след като потребителят напусне сайта. OpenCart използва сесии в много аспекти, като статус за логване, количка за пазаруване, сравняване на продукти и т.н. В повечето случаи, проблем в сесията ще предизвика съобщение за грешка. Понякога се случва и да не се появи никакво съобщение. За да разпознаете грешката, ето някои индикации за проблем в сесията:
- Продукт в количката е изчезнал от само себе си.
- Продукт в количката се е изтрил, след като потребителят е влезнал в системата.
- Няма съхранени продукти за сравняване.
- 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
Решение:
Не съществува такъв файл или проблем в директорията
- Отворете php.ini и добавете посоченият по-долу код:
1 session.save_path = /tmp; - Ако горното решение не проработи, свържете се с хоста и ги попитайте как да настроите файла session.save_path.
Други грешки
- “Permission denied”, Поискайте от хостинга да провери разрешението на директорията за сесията.
- “No space left on device”, попитайте хостинга дали е проблем на сървъра или трябва да разширите хостинг пространството.
Здравей!
Забелязах, че често ми излизат следните две съобщения за грешки в магазина:
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, но доколкото четох във форумите и в други версии се получава подобен проблем.
Здравейте,
Къде се хоства сайта?
Провер си chmod на папка 755 и 644 файловете.
Свали файла: public_html/system/helper/utf8.php и го отвори с Notepad++ виж му енкодинга и кажи какъв е.
Има ли допълнителни модули на сайта и какви?
Ползваш ли vqmod ? От кога се появява тази грешка?
Ще очаквам отговор, за да решим казуса ти.
Поздрави,
Николай Еленков
Сайтът се хоства на сървър на Superhostng.bg.
И папката, и файловете са с посочените разрешения – 0755 за папката и 0644 за файловете.
Code-page е UTF-8.
Допълнителни модули:
Facebook Like Box
Special Price Countdown
Zopim Live Chat
Ползвам vqmod, но в log-файла не дава никакви грешки.
Възможно ли е да получа достъп до сайта, за да погледна файловата структура и админ панела?
Поздрави,
Николай