Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как работает header типа header('Location: ... )
|
|||
|---|---|---|---|
|
#18+
Пользователь загружает jpeg на сервер с помощью обычной формы. После загрузки его надо перенаправить по РЕАЛЬНОМУ url этого изображения, причем на изображении должна быть надпись. Но на сервере надо сохранить оригинальное изображение (без надписи). Пытаюсь сделать так: if (move_uploaded_file($_FILES['file']['tmp_name'], $sDir)) { $host = $_SERVER['HTTP_HOST']; $img_origin = imagecreatefromjpeg($sDir); $img = imagecreatefromjpeg($sDir); $color = imagecolorallocate($img, 0, 0, 255); imagettftext($img, 48, 0, 100, 100, $color, 'arial.ttf', 'надпись'); imagejpeg($img, $sDir); header('Location: http://' . $host . '/' . $sDir); imagejpeg($img_origin, $sDir); imagedestroy($img); imagedestroy($img_origin); } Рез-т: редирект происходит на немодифицированное изображение. Пробовал вставить sleep (между редиректом и сохранением оригинального изображения), играться с буферизацией и headers_sent - не получается. если вызвать imagejpeg в поток - header ("Content-Type: image/jpeg"); headeimagejpeg($img, NULL); и убрать создание $img_origin, то пользователь перенаправляется на изображение с надписью, на сервере лежит изображение без надписи (то есть все как и должно быть), но само собой url-ом будем сам скрипт, а не URL картинки как по условию задачи. Вопрос, почему редирект происходит на немодифицированную картинку? p.s Я знаю, что в док-ии советуют завершать скрипт после редиректа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 11:41 |
|
||
|
как работает header типа header('Location: ... )
|
|||
|---|---|---|---|
|
#18+
Для оформления кода используйте тег SRC. arjunaПосле загрузки его надо перенаправить по РЕАЛЬНОМУ url этого изображения, причем на изображении должна быть надпись. Но на сервере надо сохранить оригинальное изображение (без надписи).Сохраните на сервере два варианта фала - с надписью и без. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 11:55 |
|
||
|
как работает header типа header('Location: ... )
|
|||
|---|---|---|---|
|
#18+
Для оформления кода используйте тег SRC. Понял, спасибо. Сохраните на сервере два варианта фала - с надписью и без. Не годится. по условию задачи url должен быть один и тот же. То есть, пользователь из формы попадает на уникальный урл с загруженной модифицированной картинкой. Если другой пользователь открывает тот же самый урл, то он видит изображение немодифицированное. Мучаюсь уже несколько часов. Подскажите куда рыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 12:11 |
|
||
|
как работает header типа header('Location: ... )
|
|||
|---|---|---|---|
|
#18+
arjunaпользователь из формы попадает на уникальный урл с загруженной модифицированной картинкой. Если другой пользователь открывает тот же самый урл, то он видит изображение немодифицированное.Найдите или сделайте различие между "пользователь из формы" и "другой пользователь". И отдавайте нужный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 13:00 |
|
||
|
как работает header типа header('Location: ... )
|
|||
|---|---|---|---|
|
#18+
Различие только в том, что тот кто закачал изображение на сервер - перенаправляется на модифицированное из-е. Если он же зайдет по этому url из другой закладки в браузере, получит немодифицированное из-е. А по коду, почему редирект не происходит на модифицированное из-е? оно сохраняется нормально, перезаписывается после редиректа. Как форсировать редирект или в какую сторону рыть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 13:21 |
|
||
|
как работает header типа header('Location: ... )
|
|||
|---|---|---|---|
|
#18+
arjunaА по коду, почему редирект не происходит на модифицированное из-е? оно сохраняется нормально, перезаписывается после редиректа.Это ещё тот вопрос, как оно работает. Вы предполагаете, что сначала файл должен перезапиаться, потом отдаться хидер, а потом файл должен перезаписаться заново. Однако, вебсервер может быть сконфигурирован приблизительно тыща и одним способом. Есть варианты, когда хидеры отдаются клиенту только после завершения скрипта. Разумеется, в таком случае к моменту отдачи хидера файл будет перезаписан повторно. Хорошо, рассмотрим вариант, когда хидер отдаётся в реальном времени. Однако, клиент ещё должен понять, что HTTP-заголовки закончились (пришла пустая строка) и можно начинать их отрабатывать. Ладно, даже если клиент и будет отрабатывать заголовки сразу при получении... Пока этот заголовок дошел до клиента, да пока клиент сформировал запрос, отправил его на сервер, сервер принял и отработал... При очень хорошем раскладе ориентировочно на 0.1 секунды тянет. За это время файл, опять-таки, перезаписан будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 16:08 |
|
||
|
как работает header типа header('Location: ... )
|
|||
|---|---|---|---|
|
#18+
vkle, Готов подписаться под каждым вашим словом. Но вот я между редиректом и повтороной записью ставил sleep(5). И это я под денвером все отлаэживаю. При слипе он на 5 секунд зависает на странице скрипта и только потом происходит редирект на немод. из-е. И само собой я пробовал ob_flush делать. И даже страшную конструкцию Код: php 1. пробовал. Я уже от отчаяния сюда написал ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:12 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=39098813&tid=1461418]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 371ms |

| 0 / 0 |
