Статьи

Вопросы по языку PHP

Выдается ошибка “Syntax error, unexpected XXX in …”. Как ее решить?

Попробуйте еще раз залить указанный в ошибке файл на хостинг. Скорее всего он скопировался не до конца.

 

Как определить абсолютный путь к папке с Joomla

Это может понадобиться, если потерся файл configuration.php и вам надо заполнить переменную $mosConfig_absolute_path. Для этого создаем файл path.php в директории с joomla и пишем следующее


echo dirname(__FILE__);
?>

То, что выведет этот скрипт и будет абсолютным путем к joomla. Напоминаю, что слэша в конце этого пути не должно быть.

 

Я поставил компонент, а в нем возникают непонятные ошибки вроде "Notice: Undefined variable: xxx in yyy.php on line 123".

Во-первых, скорее всего, это не смертельно. Наиболее вероятно, что ничего страшного в этом нет. Это может означать, что автор скрипта забыл инициализировать переменную до ее использования. Во-вторых с этим можно бороться тремя способами:


error_reporting(0);
....
error_reporting = E_ALL & ~E_NOTICE

 

Я получаю ошибку вида "XXX has been disabled for security reasons"

Эта ошибка означает, что ваш хостер запретил функцию XXX в настройках языка php. Точнее он запретил ее использование. Выхода из этой ситуации как бы и не существует, если вы не можете менять конфигурацию php. Можно попытаться написать в хостинговую компанию и получить разъяснения, почему та или иная функция у них запрещена. Если хостинг платный - можно смело обращаться, ибо на нормальных хостингах ничем таким особо не страдают.

 

Как вставить php-скрипт в Joomla

Надо оговориться, что вставить его можно различными способами:

Что такое safe mode? Как его выключить.

Safe Mode это специальный режим работы интерпретатора языка PHP. Старый и древний режим, который считается наиболее безопасным. Но эта безопасность налагает определенные, иногда очень серьезные ограничения на функционал. На Joomla эти ограничения сказываются хотя бы тем, что вам вряд ли удастся поставить компоненты или модули. Такого понятия как "выключить" на бесплатных хостингах не существует. На платных скорее всего вам разрешено иметь свой php.ini и параметром safe_mode можно управлять в этом файле. В любом случае об этом стоит спрашивать вашу хостинговую компанию. Более подробно написано на официальном сайте языка php

 

Ошибка: “Warning: Cannot modify header information - headers already sent by (output started at /xxxx/yyyy/xxx.php:222) in /aaaa/bbbb/ccc.php on line 444”

Эта ошибка означает, что в файле xxx.php какая-либо конструкция языка php что-то вывела, а в файле ccc.php кто-то пытается послать заголовки HTTP-ответа уже после этого. Но заголовки на то и заголовки, что бы выводиться ДО основного ответа, и в любой момент быть посланы не могут. Чаще всего решается перезаливкой файла xxx.php или полным расследованием вопроса "А чего же я это там намудрил". Вспомните что вы делали в последнее время, что исправляли, что ставили. Возможно дело в этом.

 

Зачем нужны сессии в php и что это такое

Сессии это специальный механизм языка php, который предназначен для хранения определенного массива данных ассоциированного с пользователем. Чаще всего используются при ведении пользовательских сессий после входа на сайт.

 

У меня возникает ошибка "URL file-access is disabled in the server configuration in /xxx/file.php on line ZZ"

Эта ошибка означает, что хостер запретил исходящие соединения в конфигурации сервера. Точнее запретил скачивать удаленные файлы посредством функций, вроде file или file_get_contents, языка PHP. Это может быть обусловлено либо тем, что он ограничивает всякую стороннюю сетевую активность приложений клиентов, либо пытается их защитить от дыр типа "remote file inclusion" в скриптах. В любом случае об этом стоит спросить именно у хостинговой компании.

 

Что делать если php не поддерживает библиотеку GD (GD image library)

extension=php_gd2.dll

 

Ошибка: "session_start(): open(/файл) failed: Permission denied (13) in /папка/administrator/index.php on line XX"

Данная ошибка вызывана тем, что на хостинге не правильно настроены сессии в языке PHP. Поэтому можно:

ini_set("session.save_path", "/путь/к/вашей/новой/папке");
php_value session.save_path /путь/к/вашей/новой/папке
session.save_path = /путь/к/вашей/новой/папке

 

Ошибка: "session_write_close() [write failed: No space left on device (XX) in /папка/файл.php on line ZZ"

Данная ошибка решается или с вашей хостинговой копанией, или если вами. Означает она то, что выделенное вам дисковое пространство закончилось. Произойти это могло по разным причинам. Если вы израсходовали все выданное вам пространство, то стоит его очистить. Возможно скопилось много старых временных файлов. Если вы точно знаете, что ни при чем, то вопрос надо решать обращением в службу поддержки хостера.

 

Ошибка: Fatal error: Call to undefined function FFFFFFF_FFFFFF() in /xxx/zzz.php on line 123

Все очень просто. Данная ошибка означает, что в вашей сборке языка пхп нет поддержки функции FFFFFFF_FFFFFF. Иногда такое случается и потому могут быть не доступны следующие функции:

Так как эти функции встроены в язык PHP, то их отсутствие может быть объяснено одной причиной - пхп на хостинге собран без их поддержки. Данный вопрос решается одним способом - обращением в хостинговую компанию

 

Ошибка: Fatal error: Maximum execution time of 30 seconds exceeded in xxx.php on line zzz

Эта ошибка означает, что на вашем хостинге установлен лимит на максимальное время работы одного пхп-скрипта. Чаще всего такого рода ошибки говорят о том, что произошло что-то действительно нехорошее. 30 секунд страница исполняться не может. Вариантов решения несколько:

Такие ошибки могут возникнуть, например, в случае запуска денвера с флэшки, когда доступ к файлам сильно замедлен возможностями флэш-памяти или во время установки действительно больших компонентов, когда разархивирование файла требует много ресурсов.