[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обращение к общим библиотекам за пределами сайта
MaxLBNV
Сразу прошу прощения за глупый вопрос. Но никак не могу понять, где искать ответ.

Есть каталог system с файлами, с функциями, которые могут быть использованы всеми моими сайтами. И есть, собственно, каталог news - корневой каталог одного из моих сайтов.

В каталоге system есть файл /system/mail/send.php, в файле send.php лежит функция smtp_send_mail(){...} (в ней, к слову, вызываются функции из библиотеки /system/url.php).

В каталоге news есть 2 файла: login.php, new_user.php.
В файле login.php - форма регистрации, которая методом POST отправляет данные в файл new_user.php. В файле new_user.php вызывается функция smtp_send_mail(){...}, в качестве параметров ей передаются пришедшие данные.

Вопрос: как в файле new_user.php мне воспользоваться функцией smtp_send_mail(), если она находится за пределами корневого каталога news в служебном каталоге system?
killer8080
Цитата (MaxLBNV @ 21.05.2016 - 20:40)
Вопрос: как в файле new_user.php мне воспользоваться функцией smtp_send_mail(), если она находится за пределами корневого каталога news в служебном каталоге system?

использовать абсолютные пути или смещение вверх (..)
важно чтобы у php были права на чтение оттуда.
MaxLBNV
Цитата
использовать абсолютные пути или смещение вверх (..)

Можно использовать смещение вверх, по крайней мере на локальном сервере.
Но, насколько я знаю, на хостинге это будут запрещать. Это первое.
А второе - очень криво получается.
То есть чтобы использовать функцию smtp_send_mail() из файла news/new_user.php, я прописываю в нем что-то вроде: include('../system/mail/send.php'). Include вырезает мне содержимое send.php и вставляет в new_user.php.
Но функция smtp_send_mail() вызывает функции из файла system/url.php
И тогда мне приходится в system/mail/send.php для news/new_user.php писать: include('../system/url.php'), - то есть путь, который другим файлам, другим сайтам будет совершенно непонятен!!!
Идея system/ в том, чтобы файлы и функции (классы) из нее использовались во всех моих сайтах, как внешние библиотеки. А с такими инклюдами все это идет в топку. Что делать?
killer8080
Цитата (MaxLBNV @ 21.05.2016 - 23:39)
Можно использовать смещение вверх, по крайней мере на локальном сервере.
Но, насколько я знаю, на хостинге это будут запрещать. Это первое.

если на хостинге запрещен доступ выше DOCUMNT_ROOT, тогда непонятно вообще о чем речь?
Цитата (MaxLBNV @ 21.05.2016 - 23:39)
И тогда мне приходится в system/mail/send.php для news/new_user.php писать: include('../system/url.php'), - то есть путь, который другим файлам, другим сайтам будет совершенно непонятен!!!

нет в system/mail/send.php нужно прописать

include_once __DIR__ .'/../url.php';
sg.com
Цитата (MaxLBNV @ 21.05.2016 - 23:39)
Можно использовать смещение вверх, по крайней мере на локальном сервере.
Но, насколько я знаю, на хостинге это будут запрещать.

по идее, если сайтов несколько, то второй и последующие будут оформлены как домены второго порядка. То есть структура будет такой:

Главный домен(сайт 1)
Все папки главного сайта
Все файлы главного сайта
Домен 2
|-- все папки сайта 2
|-- все файлы сайта 2

и т.д.

в таком варианте, папка "system" размещается на главном сайте. Доступ ко всем папкам главного сайта из доменов второго уровня не запрещен.
Гость_killer8080
Цитата (sg.com @ 22.05.2016 - 06:07)
То есть структура будет такой:

Главный домен(сайт 1)
Все папки главного сайта
Все файлы главного сайта
Домен 2
    |-- все папки сайта 2
    |-- все файлы сайта 2

и т.д.

Да, такое встречается на некоторых хостингах, за что админам нужно давать по рукам.
MaxLBNV
Цитата (killer8080 @ 22.05.2016 - 01:54)
include_once __DIR__ .'/../url.php';

Спасибо, через _DIR_ подключение библиотеки url.php из system/mail/send.php работает. Пойду, почитаю про волшебные константы:)
Я тоже выкрутился, подключил ее в самом new_user.php перед тем, как прицепил собственно send.php.
Но Ваш вариант вернее.
А что касается такой структуры, то сайты совершенно разные, из разных сфер, не хотелось бы их держать под одним крылом (под одним доменом).
sg.com
Цитата (Гость_killer8080 @ 22.05.2016 - 08:48)
Да, такое встречается на некоторых хостингах, за что админам нужно давать по рукам.

с этого место можно чуть подробнее? на моем хостинге именно так, может неправильно выразился, - не домены второго порядка они называются, а дополнительные домены. Но структура именно так выглядит по фтп. Есть папка public_html, в ней папка основного домена (она пустая, папки и файлы первого сайта в public_html) и дополнительного (папки и файлы второго сайта в ней, которая в свою очередь в public_html). В сети оба сайта отображаются как самостоятельные по отдельности. Когда то спрашивал у тех.поддержки про это, они ответили, что при желании можно и первый сайт перенести в свою папку, но не стал возится с этим. Уже к такой структуре привык.
killer8080
sg.com
и файлы второго сайты доступны через первый?
http://site1.ru/site2.ru
Guest
>http://site1.ru/site2.ru

cPanel раньше зачем-то именно так организовывала структуру каталогов.

sg.com, у тебя cPanel?
sg.com
Цитата (killer8080 @ 23.05.2016 - 12:37)
и файлы второго сайты доступны через первый?

не проверял, да и не думал о таком как то, в тех.пддержке спрошу. (но похоже что доступны)
Цитата (Guest @ 23.05.2016 - 12:57)
sg.com, у тебя cPanel?

она самая

такой вопрос - как правильно отписаться в тех.поддержку, так понимаю, что организация не правильная?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.