Использование относительных путей в PHP приводит к ошибке. (Gd library)

Casufi

Guest
Использование относительных путей в PHP приводит к ошибке. (Gd library)

Скажите пожалуйста, почему когда я пытаюсь создать картинку и потом вывести ее на странице используя одну и туже переменную, функция imagepng использует путь как абсолютный, а апач использует путь от рута htdocs?

PHP:
 imagepng($im, $filename)
Создает картинку которая находится
/home/casufi/public_html/drupal/captcha/captchacb4c743dc760025e3d2b81f16b2778e3.png

А при попытке вывести картинку кодом
PHP:
<img src=\"$filename\" 
alt=\"Captcha Image: you will need to recognize the text in it $filename.\"/>
я в логах апача получаю ошибку
File does not exist: /home/casufi/public_html/home/casufi/public_html/drupal/captcha/captchacb4c743dc760025e3d2b81f16b2778e3.png

Как заставить ПХП и Апач одинаково отрабатывать пути ????

Вот мои настройки РНР
php_value register_globals 0
php_value track_vars 1
php_value short_open_tag 1
php_value magic_quotes_gpc 0
php_value magic_quotes_runtime 0
php_value magic_quotes_sybase 0
php_value arg_separator.output "&amp;"
php_value session.cache_expire 200000
php_value session.gc_maxlifetime 200000
php_value session.cookie_lifetime 2000000
php_value session.auto_start 0
php_value session.save_handler user
php_value session.cache_limiter none
php_value allow_call_time_pass_reference On

детальней можно посмотреть на http://ulskiy.org.ua/phpinfo.php
 

Casufi

Guest
Огромное спасибо за ссылку, но если бы все было так просто,
в переменной $filename
соержится абсолютный путь
/home/casufi/public_html/drupal/captcha/captchacb4c743dc760025e3d2b81f16b2778e3.png
И броузером он должен обрабатываться как абсолютный
но с какой стати в поле где должна быть картинка прописывается путь
http://home/casufi/public_html/drupal/captcha/captchacb4c743dc760025e3d2b81f16b2778e3.png

После того, как я добавил / принудительно, адрес картинку в броузере начал выглядеть вот так
http:///home/casufi/public_html/drupal/captcha/captchacb4c743dc760025e3d2b81f16b2778e3.png
??
так что помоему у меня броузер вообще отказывается воспринимать абсолютные пути.
 

Фанат

oncle terrible
Команда форума
Чувак!
Бегом читать эту ссылку ЕЩЕ РАЗ!
Пока не дойдет.
 

Casufi

Guest
Начнем со второго.
Это очень просто. Если путь указывается от корня системы, то это путь абсолютный. Это как почтовый адрес в реальной жизни - откуда бы ты не шел, но по точному адресу ты всегда точно найдешь нужное место.
примеры абсолютных путей:
/var/www/site/forum/index.php
/img/frame.gif
Вот пример HTML файла
PHP:
<body>
<img src="/home/casufi/public_html/drupal/captcha/captchacb4c743dc760025e3d2b81f16b2778e3.png"></body>
</body>
Вот ссылка на этот файл
http://www.ulskiy.org.ua/test.html

Это линк взят из свойства картинки в броузере http://www.ulskiy.org.ua/home/casufi/public_html/drupal/captcha/captchacb4c743dc760025e3d2b81f16b2778e3.png

Вопрс номер 1. Это абсолютный путь /home/casufi/public_html/drupal/captcha/captchacb4c743dc760025e3d2b81f16b2778e3.png ? (Да, Нет)
Вопрос номер 2. Если это абсолютный путь, почему апач ищет картинку начиная не с корневой дирректории сервера а с корневой директории сайта??
Просто объясните это так и должно быть и возможно ли заставить апач понимать символ / как корневой каталог сервера?

Спасибо за терпение.
 

Фанат

oncle terrible
Команда форума
Просто объясните
Чувак.
По ссылке, которую тебе дали, и есть это самое объяснение.
Читать ее надо не первые две строчки, а ЦЕ ЛИ КОМ!!!

Ты вообще русский язык понимаешь?
 

Casufi

Guest
то, если в файле info.php сделать ссылку просто на vacancy.php, то браузер ее не найдет - он будет искать адрес http://www.site.ru/about/vacancy.php, достраивая путь от текущего каталога.
Поэтому надо писать полный путь от корня сайта - /job/vacancy.php
Ок принимаем за исходную точку, что в HTML можно использовать только абсолютные пути от корня сайта и что функция
imagepng($im, $filename); В качестве корня использует корневую дирректорию сервера
Возникае 3 вопрос, существует ли способ вітащить в переменную корневую дирректорию сайта ???
Вроде вопрос себя исчерпал
Всем спасибо.
 
Сверху