Вопрос № 129494: Здравствуйте ув. эксперты.
Извиняюсь за ламерский наверное вопрос, но просто умучался уже.
Итак, использую для написания php скриптов DENWER, одну из последних версий. Но и в предыдущих были подобные глюки.
Проблема:
Если я, например,...
Вопрос № 129.494
Здравствуйте ув. эксперты.
Извиняюсь за ламерский наверное вопрос, но просто умучался уже.
Итак, использую для написания php скриптов DENWER, одну из последних версий. Но и в предыдущих были подобные глюки.
Проблема:
Если я, например, пишу так:
include_once('includes/podklych_k_bd.dat'); то всё нормально,
однако, если я запишу подобную конструкцию:
include_once('/includes/podklych_k_bd.dat'); то появляется такая ошибка:
Warning: include_once(/includes/podklych_k_bd.dat) [function.include-once]: failed to open stream: No such file or directory in Z:homeМОЙ_САЙТwwwindex.phtml on line 3
Т.е. якобы такого файла не существует… но довольно часто некие файлы (этот например), может подключаться из разных директорий.. а подключаемых в нём файлах тоже указаны относительные пути. (ну т.е. например в файле «podklych_k_bd.dat» тоже подключаются какие-то файлы).
В результате чего приходится иногда использовать конструкции вида:
$err=@include('includes/ramka_verx.dat');
if ($err!=1) include('../includes/ramka_verx.dat');
Это до ужаса неудобно! Но я никак не могу понять, почему Денверу так не нравятся абсолютные пути? Может я что-то не так делаю или чего-то не понимаю, но… как заставить в Денвере работать абсолютные пути!
Может достаточно просто ввести глоб. переменную содержащую имя домена (например $sait=’sait.ru’)
и подключать файлы так: include_once($sait.’/includes/podklych_k_bd.dat');? Или это не лучшее решение?
В данном случае всё правильно и денвер ведёт себя вполне корректно, потому как, когда Вы инклудите файл, Вы должны указывать относительный путь к нужному файлу. И это на мой взгляд не является проблемой, хотя конечно всё может зависеть от того как Вы создаёте сайт. Например, у меня на сайте всё содержимое подключается к одной единственной странице, а по большому счёту шаблону с дизайном и разметкой. В итоге получается, что из какой бы папки я не подключил файл (в которой есть код с подключением к базе) с необходимым
содержанием, путь до файла с подключением к базе будет всегда один и тот же.
Ответ отправил: GINes (статус: Студент)
Ответ отправлен: 28.03.2008, 18:48 Оценка за ответ: 5 Комментарий оценки: Ясно. Теперь буду знать. Спасибо за разьяснения))
Отвечает: Викулин Антон Юрьевич
Здравствуйте, Стас Тельнов/[анти]КИЛЛЕР!
Ответ прост - если ставить слэш в начале пути, то отчет будет идти относительно локалхоста, а если слэш не ставить, то отчет идет относительно папки, в которой исполняемый файл... localhost в вашем случае - это содержимое Z:homе или Z:homeМОЙ_САЙТ,
этого явно не могу понять из вопроса...
у меня для файла Z:homelocalhostwwwvikulin-st.ruindex.php
include_once('includes/1.dat') = Z:homelocalhostwwwvikulin-st.ruincludes1.dat
include_once('/includes/1.dat') = Z:homelocalhostwwwincludes1.dat
Ктати, конфигурация денвера у вас странная.. у меня(да и по дефолту) сайты находятся
Z:homelocalhostwwwsait.ru, т.е. я набираю localhostsait.ru в браузере, и тестю сайт...
--------- Все что когда-либо должно случиться, уже произошло.
Ответ отправил: Викулин Антон Юрьевич (статус: 8-ой класс)
Ответ отправлен: 29.03.2008, 14:46 Оценка за ответ: 5 Комментарий оценки: Хм.. и действительно, если прописать ещё папку www, то работает... Пы.Сы. Да почему странная, я всегда так харнил сайты и вроде всё норм..