Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с проблемой: классы и AJAX
 
 автор: Sturmvogel   (15.08.2008 в 22:20)   письмо автору
 
 

Проблема такая:
У меня есть скрипт, который выводит список музыкальных альбомов и песен, принадлежищах им из базы данных.
Часть кода, которая занимается самим выводом размещена в своем методе в соответствующем классе. (файл *.php с данным классом размещен в отдельном файле).
Так же присутствует часть на AJAX'е, которая должна при нажатии на картинку определенную изменять видимость альбома на странице (show/hide).

Так вот, теперь суть самой проблемы: при первом вызове скрипта все работает нормально, т.е. все альбомы выводятся как надо, но когда в дело должен вступать AJAX, появляются ошибки типа
Warning: opendir(modules/media/images): failed to open dir: Invalid argument in 


где "modules/media/images" -- путь к папке с изображениями альбомов (картинки выводятся в виде alb{AlbumID}.*).
Выводятся такие ошибки и картинки альбомов не отображаются, хотя при первом запуске скрипта они отображаются...

В чем может быть проблема?

ЗЫ.
Вызов скрипта, изменяющего видимость альбома через AJAX работает... да и в полученном варианте путь на изображение тоже, вроде правильный...

  Ответить  
 
 автор: GeorgeIV   (15.08.2008 в 23:38)   письмо автору
 
   для: Sturmvogel   (15.08.2008 в 22:20)
 

Самое надежное - сформировать полный путь - http:// my_site.fig и.т.д.
Если при таком сработает, значит относительный путь где то неправильно сформирован.

  Ответить  
 
 автор: Sturmvogel   (15.08.2008 в 23:44)   письмо автору
 
   для: GeorgeIV   (15.08.2008 в 23:38)
 

была такая мысль... вроде ставил, та же фигня...

  Ответить  
 
 автор: GeorgeIV   (16.08.2008 в 00:05)   письмо автору
 
   для: Sturmvogel   (15.08.2008 в 23:44)
 

мне очень нравится слово "вроде" - вроде поставил, вроде нет, вроде работает, вроде нет
как то конкретней можно?
а opendir должен вообще путь локальный брать, типа c:/www/.... или /user/home/...

  Ответить  
 
 автор: Sturmvogel   (16.08.2008 в 00:13)   письмо автору
 
   для: GeorgeIV   (16.08.2008 в 00:05)
 

в Apache ТОЧНО ставил путь локальный

  Ответить  
 
 автор: Sturmvogel   (16.08.2008 в 15:22)   письмо автору
 
   для: 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" -- ругань. (это в Апаче)

  Ответить  
 
 автор: sl1p   (16.08.2008 в 21:48)   письмо автору
 
   для: Sturmvogel   (16.08.2008 в 15:22)
 

попробуй так:

$FilesPath = "./modules/media/images";

  Ответить  
 
 автор: elrevin   (16.08.2008 в 21:20)   письмо автору
 
   для: 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   (24.08.2008 в 15:01)   письмо автору
 
   для: Sturmvogel   (15.08.2008 в 22:20)
 

Решил проблему с картинками с помощью
$_SERVER['DOCUMENT_ROOT']


Но такая штука не действует на require(нужно присобачить к файлу с классами информацию о базе данных)...

  Ответить  
 
 автор: Proger   (24.08.2008 в 15:46)   письмо автору
 
   для: Sturmvogel   (24.08.2008 в 15:01)
 

Под виндой нуна писать пути не C:\www\root\somefile.php а C:/www/root/somefile.php сам с таким сталкивался. вылечило всю ругать с require, include and much more...

  Ответить  
 
 автор: Sturmvogel   (24.08.2008 в 21:22)   письмо автору
 
   для: Proger   (24.08.2008 в 15:46)
 

то есть просто виды слэшей?

  Ответить  
 
 автор: Sturmvogel   (25.08.2008 в 15:21)   письмо автору
 
   для: Sturmvogel   (24.08.2008 в 15:01)
 

а в Firefox картинки заменяются alt-текстом... ошибки никакой не выводит..

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования