Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Jcrop+jQuery, помогите с PHP кодом
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
Здравствуйте господа. Может сможете помочь, а то я уже 2 дня мучаюсь, никак сделать не могу. =(
Решил я подключить Jcrop к своему будущему сайту. Но вылезла куча проблем, которые никак решить не могу.
Значит есть у меня 100500 страниц, на которых по 20 изображений. Кликая на какое-либо изображение мы попадаем на страницу jcrop.php, на которой у меня картинка и превьюшка. Эта страница работает нормально. Вот часть кода:
В Хэад я подключил всё что нужно. Скрипт работает нормально, и с ним я вроде разобрался.
Вторым этапом нужно сделать ПХП файл, на который будет отсылать форма, который, в свою очередь, будет генерировать изображение. Тут то и начались проблемы (в общем то проблемы у меня постоянно, т.к. пока я мало знаю, но эту я никак не смог решить). Этот файл я взял опять же с сайта Jcrop и пытался подогнать под себя.
Зачем используется f ($_SERVER['REQUEST_METHOD'] == 'POST') я не знаю, т.к. работает и без этого, но, вероятно, так правильно. Решил всё таки оставить. Суть проблемы.
Есть 20 изображений на левой странице. Кликаем по любому из них. Открывается страница с моим HTML кодом, на которую, методом $_GET, я отправляю переменные: $cat (это папка с изображениями) и $image (непосредственно само изображение). Всё хорошо и всё работает. Далее форма, которая отправляет ПХП скрипту координаты X и Y, ширину и высоту W и H, для выделенной области. И ещё мне нужно отправить значения переменных $cat и $image моему скрипту, чтобы он автоматически прописывал путь в $src=files/$cat/$image.
И при таком ПХП файле у меня генерируется PHP картинка, которую невозможно скачать (качается ПХП файл). Нужно как то сделать так, чтобы создавалась обыкновенная картинка, которая нигде не сохраняется, но которую пользователь может спокойно скачать себе.
Вот, никак не могу это сделать. Помогите пожалуйста.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Dezmont пишет:
И при таком ПХП файле у меня генерируется PHP картинка, которую невозможно скачать (качается ПХП файл
То есть ваше клиентское web-приложение которое организует просмотр изображений в их уменьшенном и натуральном размере работает следующим образом - сначала оно получает список определенных идентификаторов изображений для показа и на их основе гененирует для каждой картинки GET-запрос к удаленному PHP-скрипту - который должен выдать соответствующий HTTP-заголовок и двоичные данные уменьшенного представления картинки При этом заместо генерации превью изображения происходит попытка сохранить предложенный файл - такая ситуация возникает в том случае если пересылаемый с данными MIME-тип невозможен для показа в браузере - это может быть вызвано ошибкой со стороны web-сервера когда требуемый PHP-скрипт не был вызван как CGI-приложений по причине отсуствия или неправильноно переопределения требуемых директив Но причиной возникновения проблемы может быть изначально неправильно сгенерированный URL-путь - например отсутствие требуемого urlencode-ирования данные или неправильная кодировка данных
Для огранизации скачивания самой картинки можно сделать спецальный iframe-элемент в котором будет запрашиваться PHP-скрипт предлагающих сохранить картинку - это делается за счет использования HTTP-заголовка Content-disposition или же установкой MIME-типа который заведомо не будет распознан браузером но в таком случае придется дополнительно прописывать желаемое имя сохраняемого файла в реальном web-пути за счет alias-инга
Для диагностики вашего клиентского приложения можете использовать например Средства разработчика в IE - включив отладку JS-скрипты вы можете получить генеририемые URL-пути и обратиться к ним напрямую через telnet и выяснить причины некорректной работы
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Dezmont
Отправлено: 16 Июля, 2010 - 01:31:20
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
JustUserR пишет:
То есть ваше клиентское web-приложение которое организует просмотр изображений в их уменьшенном и натуральном размере работает следующим образом - сначала оно получает список определенных идентификаторов изображений для показа и на их основе гененирует для каждой картинки GET-запрос к удаленному PHP-скрипту - который должен выдать соответствующий HTTP-заголовок и двоичные данные уменьшенного представления картинки При этом заместо генерации превью изображения происходит попытка сохранить предложенный файл - такая ситуация возникает в том случае если пересылаемый с данными MIME-тип невозможен для показа в браузере - это может быть вызвано ошибкой со стороны web-сервера когда требуемый PHP-скрипт не был вызван как CGI-приложений по причине отсуствия или неправильноно переопределения требуемых директив Но причиной возникновения проблемы может быть изначально неправильно сгенерированный URL-путь - например отсутствие требуемого urlencode-ирования данные или неправильная кодировка данных
Для огранизации скачивания самой картинки можно сделать спецальный iframe-элемент в котором будет запрашиваться PHP-скрипт предлагающих сохранить картинку - это делается за счет использования HTTP-заголовка Content-disposition или же установкой MIME-типа который заведомо не будет распознан браузером но в таком случае придется дополнительно прописывать желаемое имя сохраняемого файла в реальном web-пути за счет alias-инга
Для диагностики вашего клиентского приложения можете использовать например Средства разработчика в IE - включив отладку JS-скрипты вы можете получить генеририемые URL-пути и обратиться к ним напрямую через telnet и выяснить причины некорректной работы
Мозг взорван. Я конечно отчасти понял, прочитав 3 раза, но конкретного ответа на свой вопрос не нашёл. Предположим это путь в браузере: http://localhost/3/saveCrop.php. Видимым итогом этого скрипта является картинка, но картинку эту нельзя сохранить как картинку, нажав ПКМ. Так вот я и хотел узнать, что нужно дописать в коде, чтобы появилась такая возможность. Я уверен, что это можно реализовать, потому что видел, но сам не знаю как.
Реф
Отправлено: 16 Июля, 2010 - 01:48:33
Частый гость
Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010 Откуда: Реутов, Россия
Помог: 0 раз(а)
Dezmont пишет:
Зачем используется f ($_SERVER['REQUEST_METHOD'] == 'POST') я не знаю, т.к. работает и без этого, но, вероятно, так правильно. Решил всё таки оставить.
Это условие проверяет, что используем метод запроса POST. К слову, есть масса вещей без которых сайт может работать и без которых он станет находкой для злоумышленников.
Над основным вопросом ещё подумаю.
----- Думать надо головой, а не головкой!
JustUserR
Отправлено: 16 Июля, 2010 - 02:00:32
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Dezmont пишет:
Предположим это путь в браузере: http://localhost/3/saveCrop.php. Видимым итогом этого скрипта является картинка, но картинку эту нельзя сохранить как картинку, нажав ПКМ
Если при запросе вашего PHP-скрипа в отдельном окне браузера генерируется реальная конечная картинка а не содержащий ее HTML-документ - то есть HTTP-ответ содержит соответствующий MIME-тип изображения и ее двоичные данные в 7bit-формае - то в таком случае проблема с сохранение картинки путем ПКМ является исключительно багом в вашем браузере - поскольку на такой одиночный объект картинки никакие клиентские JS-скрипты не действуют и не могут оказывать влияние на возможность ее сохранения
Следует удостовериться также что используемая HTML-страница с картинкой каждый раз при ее запросе реально генерируется PHP-скриптом и загружается с web-сервера - а не используется из кеша поскольку в таком случае даже если клиентский JS-скрипт был модифицирован и проблема была устранена но эффект не будет заметен - также нужно проверять не только контейнерную HTML-страницу но и все используемые ей зависимости и подключаемые элементы на предмет кеширования
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.