MaxLBNV
21.05.2016 - 20:40
Сразу прошу прощения за глупый вопрос. Но никак не могу понять, где искать ответ.
Есть каталог 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
21.05.2016 - 22:25
Цитата (MaxLBNV @ 21.05.2016 - 20:40) |
Вопрос: как в файле new_user.php мне воспользоваться функцией smtp_send_mail(), если она находится за пределами корневого каталога news в служебном каталоге system?
|
использовать абсолютные пути или смещение вверх (..)
важно чтобы у php были права на чтение оттуда.
MaxLBNV
21.05.2016 - 23:39
Цитата |
использовать абсолютные пути или смещение вверх (..) |
Можно использовать смещение вверх, по крайней мере на локальном сервере.
Но, насколько я знаю, на хостинге это будут запрещать. Это первое.
А второе - очень криво получается.
То есть чтобы использовать функцию 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
22.05.2016 - 01:54
Цитата (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
22.05.2016 - 06:07
Цитата (MaxLBNV @ 21.05.2016 - 23:39) |
Можно использовать смещение вверх, по крайней мере на локальном сервере. Но, насколько я знаю, на хостинге это будут запрещать. |
по идее, если сайтов несколько, то второй и последующие будут оформлены как домены второго порядка. То есть структура будет такой:
Главный домен(сайт 1)
Все папки главного сайта
Все файлы главного сайта
Домен 2
|-- все папки сайта 2
|-- все файлы сайта 2
и т.д.
в таком варианте, папка "system" размещается на главном сайте. Доступ ко всем папкам главного сайта из доменов второго уровня не запрещен.
Гость_killer8080
22.05.2016 - 08:48
Цитата (sg.com @ 22.05.2016 - 06:07) |
То есть структура будет такой:
Главный домен(сайт 1) Все папки главного сайта Все файлы главного сайта Домен 2 |-- все папки сайта 2 |-- все файлы сайта 2
и т.д. |
Да, такое встречается на некоторых хостингах, за что админам нужно давать по рукам.
MaxLBNV
22.05.2016 - 17:10
Цитата (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
22.05.2016 - 21:14
Цитата (Гость_killer8080 @ 22.05.2016 - 08:48) |
Да, такое встречается на некоторых хостингах, за что админам нужно давать по рукам.
|
с этого место можно чуть подробнее? на моем хостинге именно так, может неправильно выразился, - не домены второго порядка они называются, а дополнительные домены. Но структура именно так выглядит по фтп. Есть папка public_html, в ней папка основного домена (она пустая, папки и файлы первого сайта в public_html) и дополнительного (папки и файлы второго сайта в ней, которая в свою очередь в public_html). В сети оба сайта отображаются как самостоятельные по отдельности. Когда то спрашивал у тех.поддержки про это, они ответили, что при желании можно и первый сайт перенести в свою папку, но не стал возится с этим. Уже к такой структуре привык.
killer8080
23.05.2016 - 12:37
sg.comи файлы второго сайты доступны через первый?
http://site1.ru/site2.ru
>http://site1.ru/site2.ru
cPanel раньше зачем-то именно так организовывала структуру каталогов.
sg.com, у тебя cPanel?
sg.com
23.05.2016 - 13:53
Цитата (killer8080 @ 23.05.2016 - 12:37) |
и файлы второго сайты доступны через первый? |
не проверял, да и не думал о таком как то, в тех.пддержке спрошу. (но похоже что доступны)
Цитата (Guest @ 23.05.2016 - 12:57) |
sg.com, у тебя cPanel? |
она самая
такой вопрос - как правильно отписаться в тех.поддержку, так понимаю, что организация не правильная?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.