|
|
|
| Проблема такая:
У меня есть скрипт, который выводит список музыкальных альбомов и песен, принадлежищах им из базы данных.
Часть кода, которая занимается самим выводом размещена в своем методе в соответствующем классе. (файл *.php с данным классом размещен в отдельном файле).
Так же присутствует часть на AJAX'е, которая должна при нажатии на картинку определенную изменять видимость альбома на странице (show/hide).
Так вот, теперь суть самой проблемы: при первом вызове скрипта все работает нормально, т.е. все альбомы выводятся как надо, но когда в дело должен вступать AJAX, появляются ошибки типа
Warning: opendir(modules/media/images): failed to open dir: Invalid argument in
|
где "modules/media/images" -- путь к папке с изображениями альбомов (картинки выводятся в виде alb{AlbumID}.*).
Выводятся такие ошибки и картинки альбомов не отображаются, хотя при первом запуске скрипта они отображаются...
В чем может быть проблема?
ЗЫ.
Вызов скрипта, изменяющего видимость альбома через AJAX работает... да и в полученном варианте путь на изображение тоже, вроде правильный... | |
|
|
|
|
|
|
|
для: Sturmvogel
(15.08.2008 в 22:20)
| | Самое надежное - сформировать полный путь - http:// my_site.fig и.т.д.
Если при таком сработает, значит относительный путь где то неправильно сформирован. | |
|
|
|
|
|
|
|
для: GeorgeIV
(15.08.2008 в 23:38)
| | была такая мысль... вроде ставил, та же фигня... | |
|
|
|
|
|
|
|
для: Sturmvogel
(15.08.2008 в 23:44)
| | мне очень нравится слово "вроде" - вроде поставил, вроде нет, вроде работает, вроде нет
как то конкретней можно?
а opendir должен вообще путь локальный брать, типа c:/www/.... или /user/home/... | |
|
|
|
|
|
|
|
для: GeorgeIV
(16.08.2008 в 00:05)
| | в Apache ТОЧНО ставил путь локальный | |
|
|
|
|
|
|
|
для: Sturmvogel
(15.08.2008 в 22:20)
| | Смотрите:
метод один и тот же, то есть в своих действиях он использует функцию opendir() и две другие соответствующие функции. Если быть точным, то примерно так это все выглядит
$FilesPath = "modules/media/images";
...
$handle=opendir($FilesPath);
...
|
При данных действиях и при первой загрузке все нормально, картинки отображаются, а функция opendir() не ругается и не выплевывает ошибку...
После работы AJAX картинка не отображается, функции плюются ошибками, но что интересно, при этом полученный HTML кусок исправно пишет
<img src="modules/media/images/alb4_sm.jpg">
|
ЗЫ.
при подаче функции opendir() параметра с точным путем http:// -- ругань.
при подаче локального пути типа "m:\home\site\modules\media\images" -- ругань. (это в Апаче) | |
|
|
|
|
|
|
|
для: Sturmvogel
(16.08.2008 в 15:22)
| | попробуй так:
$FilesPath = "./modules/media/images"; | |
|
|
|
|
|
|
|
для: Sturmvogel
(15.08.2008 в 22:20)
| | И все-таки проблемы именно с путями, то есть перепроверьте путь указанный функции opendir, так как если верить ману:
Описание
resource opendir ( string $path )
Возвращает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir().
Если путь не существует или каталог, расположенный по указанному пути, не может быть открыт вследствие правовых ограничений или ошибок файловой системы, функция opendir() возвращает значение FALSE и генерирует сообщение PHP об ошибке уровня E_WARNING.
http://www.php.net/function.opendir
Варнинг может быть только если каталога нет или доступ к нему заприщен, так что стоит еще и права проверить... | |
|
|
|
|
|
|
|
для: Sturmvogel
(15.08.2008 в 22:20)
| | Решил проблему с картинками с помощью
$_SERVER['DOCUMENT_ROOT']
|
Но такая штука не действует на require(нужно присобачить к файлу с классами информацию о базе данных)... | |
|
|
|
|
|
|
|
для: Sturmvogel
(24.08.2008 в 15:01)
| | Под виндой нуна писать пути не C:\www\root\somefile.php а C:/www/root/somefile.php сам с таким сталкивался. вылечило всю ругать с require, include and much more... | |
|
|
|
|
|
|
|
для: Proger
(24.08.2008 в 15:46)
| | то есть просто виды слэшей? | |
|
|
|
|
|
|
|
для: Sturmvogel
(24.08.2008 в 15:01)
| | а в Firefox картинки заменяются alt-текстом... ошибки никакой не выводит.. | |
|
|
|