Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CakePHP - проблемы... 
:(
    Опции темы
Ant88
Дата 22.12.2007, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007
Где: г. Самара

Репутация: нет
Всего: 1



Здравствуйте!

Есть такая проблема в CakePHP:

есть контроллер ImagesController, в нем экшен preview (вызывается по URL /images/preview/*.jpg)
примерно такой код:

Код

class ImagesController{
   var name = "Images";
   ...

   function preview(){
      $id = $this->params['pass'][0];
      $image = ... // здесь извлекается изображение из БД по ID
      $this->set('image', $image);
   }
  ...
}


Отображение для этого экшена такое:
Код

header('Content-Type: image/jpeg');
echo $image;


На одной из html страниц вызывается несколько картинок таким образом:
Код

<img src = "/images/preview/1.jpg" />
<img src = "/images/preview/2.jpg" />
<img src = "/images/preview/3.jpg" />


в итоге отображается только одна картинка. причем поведение в разных браузерах разное:
Firefox: отображется последняя вызванная картинка, при обновлении страницы уничтожаются переменные сессии.
IE-6: отображается первая вызванная картинка, при обновлении отображается только следующая вызванная картинка - если обновить после того как была отображена последняя вызванная картинка - уничтожаются переменные сессии.

При этом такое поведение только если в коде html вызываются разные ID - картинки. сделать например так:
Код

<img src = "/images/preview/2.jpg" />
<img src = "/images/preview/2.jpg" />
<img src = "/images/preview/2.jpg" />

то все работает нормально.

Вопрос: это моя ошибка где-либо в коде или это особенность CakePHP?
PS: прошу прощение за сумбурно сформулированный вопрос.
PM MAIL ICQ   Вверх
bawukr
Дата 18.1.2008, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



Проверь пути к картинкам и их наличие... скорее всего что у тебя просто нет остальных картинок.. либо же они битые в БД..
PM MAIL   Вверх
Ant88
Дата 22.1.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007
Где: г. Самара

Репутация: нет
Всего: 1



bawukr, спасибо за ответ.
Нет, картинки не битые. Просто сразу несколько их (взятых одним и тем же скриптом из БД) - на одной странице не отображаются. Любая из них, взятая в отдельности - отображается.
Пути тоже нормальные, пробовал и полностью урл скрипта прописывать - тот же результат. 
Ну и это не объясняет почему слетает сессия.
Бьюсь над вопросом до сих пор, решения нет пока никакого...
PM MAIL ICQ   Вверх
GeneralElectric
Дата 22.1.2008, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: нет
Всего: 16



Наверняка что-то в сессии накосячено. и CakePHP тут не при чем.
Судя по всему, сессия переписывает id выводимой картинки. Другого объяснения нагадать я не могу.

Где результаты отладки? Где лог работы скрипта, выводящего картинки?
PM MAIL   Вверх
jctim
Дата 19.2.2008, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 8
Регистрация: 21.6.2006

Репутация: нет
Всего: нет



А не лучше ли в функцию передавать параметром $id ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




[ Время генерации скрипта: 0.0954 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.