Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> (PHP) как это делается? 
:(
    Опции темы
sanich_
  Дата 8.7.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Есть, допустим, сайт http://mysite.ru, хранится он на хостинге в папке mysite.ru, в страницах этого сайта используется множество инклудов, т.е. страница, например

index.php состоит из head.php, left.php, right.php, center.php, footer.php...
index2.php состоит из head.php, left.php, right.php, center.php, footer.php...
...

Все эти файлы хранятся внутри папки mysite.ru.

Потребовалось создать подпроекты (поддомены) типа
news.mysite.ru
forum.mysite.ru

На хостинге это новые дирректории, соответсвенно news.mysite.ru,
forum.mysite.ru

Эти разделы-сайты (news.mysite.ru,forum.mysite.ru) как и mysite.ru используют(включают) те же файлы head.php, left.php, right.php, center.php, footer.php

Собственно вопрос: как правильно их использовать?

Копировать эти файлы в новые подпроекты и также их подключать? - недостаток: при изменени включенной страницы, например (head.php) придется копировать во все подпроекты.

Или в файлах подпроектов в прописывать пути типа require('http://mysite.ru/head.php) - такая жестская привязка пути не позволит использовать абсолютно одинаковые копии проектов на удаленном хостинге и локально веб сервере для отладки,т.к. для обращения к локальному веб серверу используется адрес http://mysite_local.ru/, http://news.mysite_local.ru/ .....

Кто как делает?
???

PM MAIL   Вверх
bars80080
Дата 8.7.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(sanich_ @  8.7.2008,  14:06 Найти цитируемый пост)
require('http://mysite.ru/head.php)
 подключая файлы, ты используешь не url-адрес, а реальный путь к файлу на сервере, т.е. что-то вроде: 
Код

require('public_html/mysite/include_files/head.php'); // на хосте
require('c:/www/include_files/head.php'); // на локале

соответственно достаточно корень определять автоматически: $SPath = $_SERVER['DOCUMENT_ROOT'].'/';
Код

$SPath = $_SERVER['DOCUMENT_ROOT'].'/';
require($SPath.'include_files/head.php'); // везде


Это сообщение отредактировал(а) bars80080 - 8.7.2008, 14:14
PM MAIL WWW   Вверх
sanich_
Дата 8.7.2008, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Цитата(bars80080 @ 8.7.2008,  14:13)
Цитата(sanich_ @  8.7.2008,  14:06 Найти цитируемый пост)
require('http://mysite.ru/head.php)
 подключая файлы, ты используешь не url-адрес, а реальный путь к файлу на сервере, т.е. что-то вроде: 
Код

require('public_html/mysite/include_files/head.php'); // на хосте
require('c:/www/include_files/head.php'); // на локале

соответственно достаточно корень определять автоматически: $SPath = $_SERVER['DOCUMENT_ROOT'].'/';
Код

$SPath = $_SERVER['DOCUMENT_ROOT'].'/';
require($SPath.'include_files/head.php'); // везде

Это я так понимаю вариант для случая когда нужно папку include_files вместе с содержимым нужно копировать во все папки проектов

forum.mysite.ru
news.mysite.ru

???

Я правильно понял? Другого решения подключения файлов нет?


PM MAIL   Вверх
Feldmarschall
Дата 8.7.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



С какой стати копировать?
Приведи-ка тут ПОЛНЫЕ пути к своим "папкам на сервере".

Это сообщение отредактировал(а) Feldmarschall - 8.7.2008, 14:58
PM   Вверх
bars80080
Дата 8.7.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



ну почему, можно и в случае с доп. доменами

у меня допустим на хосте лежат папки mysite, pda, wap для адресов mysite.ru, pda.mysite.ru, wap.mysite.ru
что сложного из одной директории обратится к другой? в этом случае чтобы подключить в файл (что в интернете по адресу) http://pda.mysite.ru/index.php файл, находящийся в mysite/inc/header.php достаточно написать: 
Код
require('../mysite/inc/header.php'); 

а примеры я приводил, чтобы вы поняли, что в реквайр указываются не url, а реальные пути
PM MAIL WWW   Вверх
sanich_
Дата 8.7.2008, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Цитата(bars80080 @ 8.7.2008,  15:05)
ну почему, можно и в случае с доп. доменами

у меня допустим на хосте лежат папки mysite, pda, wap для адресов mysite.ru, pda.mysite.ru, wap.mysite.ru
что сложного из одной директории обратится к другой? в этом случае чтобы подключить в файл (что в интернете по адресу) http://pda.mysite.ru/index.php файл, находящийся в mysite/inc/header.php достаточно написать: 
Код
require('../mysite/inc/header.php'); 

а примеры я приводил, чтобы вы поняли, что в реквайр указываются не url, а реальные пути

Вроде разобрался, тока вот какая проблема

для хостигна запись то будет такая
require('../mysite.ru/inc/header.php'); 

а для локального веб сервера запись будет такая
require('../mysite_local.ru/inc/header.php'); 

Пути вот такие для сайта mysite.ru

V:/home/mysite_local.ru/www           - локальный веб сервер
/home/login/mysite.ru/docs               - хостинг



Пути вот такие для сайта news.mysite.ru

V:/home/news.mysite_local.ru/www           - локальный веб сервер
/home/login/news.mysite.ru/docs               - хостинг


запись вида 
../head.php  как я понимаю означает начиная с дирректории находящейся уровнем выше, уровнем выше будут папки 
mysite_local.ru - локальный веб сервер
mysite.ru            - хостинг

А КАК можно указать что на 2 уровня выше? Я подумал что если сделать папку includes_files на том же уровне, что и папки всех сайтов на хостинге.
????




PM MAIL   Вверх
bars80080
Дата 8.7.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



на два уровня: ../../head.php


всё можно свести к автоматическому определению пути, либо в крайнем случае, можно написать условие 
Код

$a = 1;
if($a == 1) { /* пути для хоста */ } 
elseif($a == 2) { /*пути для локали*/ }
elseif($a == 2) { /*пути для хоста с доменом*/ }
// .. и т.д.
 и выполнять переключение один раз, при заливке на хост, после этого больше трогать не придётся
PM MAIL WWW   Вверх
sanich_
Дата 8.7.2008, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Цитата(bars80080 @ 8.7.2008,  17:08)
на два уровня: ../../head.php


всё можно свести к автоматическому определению пути, либо в крайнем случае, можно написать условие 
Код

$a = 1;
if($a == 1) { /* пути для хоста */ } 
elseif($a == 2) { /*пути для локали*/ }
elseif($a == 2) { /*пути для хоста с доменом*/ }
// .. и т.д.
 и выполнять переключение один раз, при заливке на хост, после этого больше трогать не придётся

Получилось, ну а что плохого в предложенном мной варианте:
если множество проектов ипользуют одни и теже файлы включения, то удобно файлы включения иметь одну копию для всех проектов (для быстрой правки),
поместить на один уровень с папками всех проектов (для разрешения конфликта путей на хостинге и локальном веб сервере)

К тому же некоторые файлы такие как connection.php, в котором хранятся переменны для поключения к БД лучше вынести из зоны видимости web сервера
PM MAIL   Вверх
bars80080
Дата 8.7.2008, 17:34 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



нормальное предложение для размещения конфигурационных файлов. только не копию, а действующий вариант

когда возникает вопрос в размножении каких-то одинаковых файлов, сразу стоит задуматься, что это уже никакое не программирование
PM MAIL WWW   Вверх
sanich_
Дата 8.7.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



а как быть с файлами изображений, которые тоже повторяются в каждом из проектов, указать путь типа ../../img/logo.jpg не получится т.к. это уже вне зоны видимости web сервера.

Копировать папку с одинаковыми изображениями в каждый из проектов??

PM MAIL   Вверх
Feldmarschall
Дата 8.7.2008, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



господи, ну это-то из самого букваря веб-мастера, вообще из детского сада
На любюом сайте в мире можно написать <img src=http://site.com/image.jpg> и тебе покажет картинку.

PM   Вверх
sanich_
Дата 8.7.2008, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 2.3.2008

Репутация: нет
Всего: нет



Цитата(Feldmarschall @ 8.7.2008,  21:57)
господи, ну это-то из самого букваря веб-мастера, вообще из детского сада
На любюом сайте в мире можно написать <img src=http://site.com/image.jpg> и тебе покажет картинку.

А без указания полного пути, начинающегося с http://.....    реально?

Полный путь не резон использовать т.к. сайт на хостинге это
http://mysite.ru/img.jpg
а на локальном web сервере
http://mysite_local.ru/img.jpg

Т.е. используя относительный путь

???
PM MAIL   Вверх
Feldmarschall
Дата 8.7.2008, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Цитата(sanich_ @  8.7.2008,  22:07 Найти цитируемый пост)
А без указания полного пути, начинающегося с http://.....    реально?

Попробуй ответить себе на этот вопрос сам.
Веб весь перед тобой. Узнать, как устроены веб-сайты, совсем несложно. 
мне вообще кажется, что основы HTML, способы передачи данных в скрипт, даже понятие о куках можно (и нужно) получить до того, как собрался приступать к изучению веб-программирования. А просто пользуясь интернетом. Не только для рассматривания порнокартинок, но и для небольшого любознательного изучения.


Путь можно записать в переменную. 

PM   Вверх
bars80080
Дата 9.7.2008, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Feldmarschall @  8.7.2008,  22:12 Найти цитируемый пост)
Путь можно записать в переменную. 


sanich_, я ж это написал в примере:
Код

$a = 1;
if($a == 1) { /* пути для хоста */ $BaseHost = 'http://mysite.ru/'; $BasePath = 'public_html/mysite/'; } 
elseif($a == 2) { /*пути для локали*/ $BaseHost = 'http://localhost'; $BasePath = 'c:/www/'; }
elseif($a == 3) { /*пути для хоста с доменом*/ $BaseHost = 'http://pda.mysite.ru'; $BasePath = 'public_html/pda/'; }

...

echo '<img src="'.$BaseHost.'image/pic1.jpg" />';


хотя бы так, но лучше завязать определение путей на 
$SPath = $_SERVER['DOCUMENT_ROOT']; $SHost = 'http://'.$_SERVER['HTTP_HOST'];

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0589 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.