Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2009, 14:13   #1
Valve
 
Регистрация: 01.02.2009
Сообщений: 7
Вопрос Помогите с конектом с БД

Всем привет.
Помогите новичку, понимаю это не сложно, но боюсь наворочить...

Вот в скрипте в 10 разных файлах идет подключение к БД по логину и паролю... Так вот как сделать, чтоб от одного файла шло подключение, т.е. в файле забить: хост. имя БД, юзера, пасс... В а подключениях (остальных файлах) указать на сам файл.

По подробнее:

Есть файл в папке /incl/mainconfig.inc
В нем забиты данные для коннекта



И есть файлы где происходит такое же соединение.


Как сделать за место каждого такого конекта, один коннект файла, а от него уже на другое файлы...


И еще вопрос.
Так же приходится в не которых файлах прописывать пути к директории, т.е. (пример) /home/myhost/domains/site.ru/public_html/top/
Как можно занести в /incl/mainconfig.inc этот путь, а вдругих файлах, только на него... Т.е. (как пример):
Этот код (подобный) во многих файлах:

define("DIRECTORY", "/home/myhost/domains/site.ru/public_html/top");
define("FILE_CONFIG", "/home/myhost/domains/site.ru/public_html/top/img/email/email.cfg");

Как бы сделать приблизительно как-то вот так??? :::

define("DIRECTORY", "<какой-то код>");
define("FILE_CONFIG", "<какой-то код>/img/email/email.cfg");

А сам <какой-то код> вынести в /incl/mainconfig.inc
Valve вне форума Ответить с цитированием
Старый 01.02.2009, 14:29   #2
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

вынесите все общие стоки в любой php файл и включайте его в код функциями include, include_once, require, require_once (различаются некоторыми нюансами)
свободен...
wall66 вне форума Ответить с цитированием
Старый 01.02.2009, 14:43   #3
Valve
 
Регистрация: 01.02.2009
Сообщений: 7
По умолчанию

Спасибо...
Буду ппробовать... Если не получится отпишу...
Valve вне форума Ответить с цитированием
Старый 02.02.2009, 21:23   #4
Valve
 
Регистрация: 01.02.2009
Сообщений: 7
По умолчанию

Получилось, но вот возникла проблема.
Атрибуты изменил на 777!!!

Если делать так (прописать в файле):
define("DIRECTORY", "/home/myhost/domains/site.ru/public_html/top");
include(DIRECTORY."/incl/errors.inc");

То все работает, но крайне неудобно, в каждом файле прописывать:
define("DIRECTORY", "/home/myhost/domains/site.ru/public_html/top");

А если засунуть такой код в файл m.inc
<?php
define("DIRECTORY", "/home/myhost/domains/site.ru/public_html/top");
?>


И попытаться его вывести в каком-либо файле, то чтение не происходит с него... НЕ РАБОТАЕТ
define("./incl/m.inc");

В чем может быть причина?

Последний раз редактировалось Valve; 02.02.2009 в 21:46.
Valve вне форума Ответить с цитированием
Старый 02.02.2009, 21:42   #5
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

проблема в том что функция define это определение константы, а include - включение подфайла в код

вы же пытаетесь включить файл с помощью определения константы, что не есть логично
свободен...
wall66 вне форума Ответить с цитированием
Старый 02.02.2009, 21:47   #6
Valve
 
Регистрация: 01.02.2009
Сообщений: 7
По умолчанию

+ частично решилось через инслуд,

include("./m.php");
НО:

Получилось... но как быть, если структура скрипта состоит так:

/home/myhost/domains/site.ru/public_html/top/ - в нем часть файлов
/home/myhost/domains/site.ru/public_html/1th.2th.top/ - в нем часть файлов
/home/myhost/domains/site.ru/public_html/2th.2th.top/ - в нем часть файлов
/home/myhost/domains/site.ru/public_html/2th.top/

Все постороено на поддоменах.

Если скидываю такой подобный файл в папку поддомена 3 уровня: 1th.2th.top то в ней скрипты работают корректно, но в других папках др. поддоменов нет... Если скопировать такой же файл в них, то тоже работают...

Но крайне неудобно... к примеру 10 поддоменов - 10 файлов...

Последний раз редактировалось Valve; 02.02.2009 в 22:07.
Valve вне форума Ответить с цитированием
Старый 02.02.2009, 22:30   #7
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

обращения к файловой системе могут содержать переходы на уровень выше: ".."
свободен...
wall66 вне форума Ответить с цитированием
Старый 02.02.2009, 22:31   #8
Valve
 
Регистрация: 01.02.2009
Сообщений: 7
По умолчанию

ТОЧНО!!!

Но выигрышем оказалось прописать так:
include("./../m.php");

А так не работало:
include("./m.php");

Возможно из-за того, что скрипт работает на нескольких поддоменах и поддоменах 3 уровня.

Спасибо всем, за помощь!!!
Valve вне форума Ответить с цитированием
Старый 03.02.2009, 01:51   #9
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от Valve Посмотреть сообщение
ТОЧНО!!!

Но выигрышем оказалось прописать так:
include("./../m.php");

А так не работало:
include("./m.php");

Возможно из-за того, что скрипт работает на нескольких поддоменах и поддоменах 3 уровня.

Спасибо всем, за помощь!!!
Сабдомены тут не при чем. Просто m.php относительно основного документа лежит в родительской папке.
SkyM@n вне форума Ответить с цитированием
Старый 04.02.2009, 09:06   #10
Valve
 
Регистрация: 01.02.2009
Сообщений: 7
По умолчанию

Спасибо за информацию, во всем разобрался, все работает.
Вот возник еще вопрос.

В файле имеется такой вид (пытался все привести к одному виду, но скрипт напрочь отказывается работать):

PHP код:
$database "test1";
$database_host "localhost";
$database_login "test1";
$database_password "123456";

define("database_host""localhost");
define("database""test1");
define("database_login""test1");
define("database_password""123456"); 
Можно ли как-нибудь их приравнять, чтоб не было повторов, т.е. типа такого вида (как правильно я не знаю, вот и спрашиваю):

$database_host = define("database_host", "localhost");
или может так
$database_host = ("database_host", "localhost");
Valve вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц