Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с путями к файлам
 
 автор: faost   (05.11.2004 в 10:50)   письмо автору
 
 

У меня есть главная страница сайта - index.php. Я создал папку "gallery" и в ней написал скрипт галереи картин, состоящий из 3-х .php файлов и двух папок с самими картинами и thumbs. При обращении к сайту http://www.com/gallery/index.php галерея работает нормально, все ок.
В середину файла index.php я поставил оператор "include ("gallery/index.php"); " и при заходе на сайт http://www.com/index.php выпадает куча ошибок, которые исправляются исправлением всех путей в скрипте галереи, естественно, галерея сама по себе уже не работает - если ввести http://www.com/gallery/index.php выпадет куча ошибок из-за неправильных путей к картинкам.
Как бы так сделать, чтобы и скрипт сам по себе работал и его можно было бы испльзовать в других сайтах и при подключении его в файл из другой директории тоже все было ок?

   
 
 автор: glsv (Дизайнер)   (05.11.2004 в 12:49)   письмо автору
 
   для: faost   (05.11.2004 в 10:50)
 

Попробуйте использовать вот такой хитрый тег - base


<html>
<head>
<base href=http://site.ru/>
</head>


После его указания все относительные пути будут отсчитываться от значения href, указанного с этом тэге. Ну и Вам придется переработать все ссылки на Ваших страницах.

   
 
 автор: faost   (05.11.2004 в 13:51)   письмо автору
 
   для: glsv (Дизайнер)   (05.11.2004 в 12:49)
 

Проблема в том, что у меня примерно такая структура:

index.php:

<html><head><titile>bla-bla-bla</title></head><body>
Верхняя часть сайта (шапка с меню)

include ("gallery/index.php");

Нижняя часть сайта
</body></html>


Т. е. gallery/index.php не содержит тегов <html>, <body> и т. д.

   
 
 автор: glsv (Дизайнер)   (05.11.2004 в 14:47)   письмо автору
 
   для: faost   (05.11.2004 в 13:51)
 

Так а Вы же писали, что она дожна работать сама по себе тоже
>В середину файла index.php я поставил оператор "include ("gallery/index.php"); " и при заходе на сайт http://www.com/index.php выпадает куча ошибок, которые исправляются исправлением всех путей в скрипте галереи, естественно, галерея сама по себе уже не работает - если ввести http://www.com/gallery/index.php выпадет куча ошибок из-за неправильных путей к картинкам.

Таким образом Вам ничего не мешает вставить эти тэги на страницу gallery/index.php

Либо можно сделать еще лучше. Определяйте вставлять заголовки или нет по наличию спец. переменной.

<html><head><titile>bla-bla-bla</title></head><body> 
Верхняя часть сайта (шапка с меню) 

$head=1;
include ("gallery/index.php"); 

Нижняя часть сайта 
</body></html> 
[code]

А gallery/index.php будет содержать
[code]
<?
  
if ($head==1)
  {
    echo 
"<html>
               <head>
                 <base href="
www.site.ru">
               </head>"
;
  }
?>

   
 
 автор: faost   (05.11.2004 в 15:45)   письмо автору
 
   для: glsv (Дизайнер)   (05.11.2004 в 14:47)
 

Вродеб, по этому коду получится, что gallery/index.php будет содержать по два тега <html>, <head> - а проблем не будет с этим?

Вродеб, нашел способ:
В начале скрипта написал
$dir_name = dirname(__FILE__)

и все пути поменял вместо
"путь_к_файлу/имя_файла"

на
"$dir_name/путь_к_файлу/имя_файла"


Недостки правда тоже появились: теперь неотредактируешь дизайн в DreamWeaver MX из-за
<img src=<? echo $dir_name.'images/'.$picture[$image]->file_name.'"'?>

   
 
 автор: glsv (Дизайнер)   (05.11.2004 в 16:13)   письмо автору
 
   для: faost   (05.11.2004 в 15:45)
 

>Вродеб, нашел способ:
На этом форуме можно использовать скины и задачу смены скинов мы решили подобным же образом :)

>Вродеб, по этому коду получится, что gallery/index.php будет содержать по два тега <html>, <head> - а проблем не будет с этим?

Простите ошибся. Вот так надо.
$head!=1
 
<? 
  
if ($head!=1
  { 
    echo 
"<html> 
               <head> 
                 <base href="
www.site.ru"> 
               </head>"

  } 
?> 

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования