Забыли пароль?
Запросите новый здесь.

Автор темы: alaken
ID темы: 955
Информация:
Тема содержит 14 сообщения, была просмотрена 3150 раз.  Имеются прикрепленные файлы.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Вопросы новичков
 Распечатать тему
Сторонее обращение к БД
alaken
Доброго времени суток!
Имеется веб приложение которое имеет свою БД и свои методы обращения к ней.

Проблема при встраивании в страницу сайта, перестает работать обращение к базе.

Вся проблема где то в maincore.php, на тестовой странице не включая этот модуль все корректно работает, как только включаю - перестает.
Что и где в maincore.php блокирует сторонние запросы в базу?

Не надо писать в заголовке, что проблема решена!

Изменил(а) jikaka, 08.10.2012 13:27
 
jikaka
каким образом встраиваешь?
думаю нужно сделать отдельный php файл, в котором сделать все по уму
 
Web
alaken
делаю вот так:

Скачать исходники  Код
require_once "../maincore.php";
require_once THEMES."templates/header.php";

require_once "classes/class_db.php";

$mydb = new cdb();
$mydb->Connect();
$result = $mydb->Select(...)
print $result["fieldname"];





подробности опустил...

вот если я строчку require_once "../maincore.php"; закоментирую работать будет, проверил...
 
alaken
в maincore.php методы обращения к БД не используют ссылки на соединение, и если попытаться обратьиться к другой БД то соответственно сайт загнется после этого, потому что, будет использовать последнее соединение к базе, а последнее соответственно ссылается на другую БД. Но этот момент я попытался исправить, и везде в методах прописал ссылку на установленное соединение.

подробности я тут приводить не стал, это код для примера:
Скачать исходники  Код

function dbquery($query)
{
   $result = @mysql_query($query, $db_connect);
...


 
jikaka
ты проблему решил или нет?
 
Web
alaken
нет, проблема актуальна.
В отдельности все работает как часы.
Сайт с модифицированным maincore.php функционирует нормально.
Веб приложение на отдельной странице (не встроенной в сайт fusion) работает как и должно.
Но вместе на странице с подключенным maincore.php мое приложение перестает работать, тоесть результат из БД не возвращает вообще.

У себя можете воспроизвести мою проблему.

создать отдельную БД, (отдельно от БД fusion)
и попробовать к ней обратьится из страницы сайта( я переделывал старницу news.php и из нее пробовал обращаться к другой БД)

Мне нужно чтобы мое приложение выглядело не отдельной страничкой, а как стандартная страница fusion со всеми панелями, заголовками и футерами...
Изменил(а) alaken, 05.10.2012 12:41
 
Polarfox
отображай во фрейме/отображай аяксом/меняй бд и возвращай оригинальную после работы.

вопросы?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
x1 x1
 
Web
alaken
PolarFox написал:

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

вопросы?


за совет с фреймами конечно "спасибо"...
AJAX это решение, но другое.
а по поводу "меняй бд и возвращай оригинальную после работы" - попробуйте сами, тоже самое делаю я в своем случае, но не работает.

Вопросы?
 
Rasmusok
bj bj bj
Разработка сайтов. Продвижение. Раскрутка. www.wooas.ru
Начхать на красоту, главное что под капотом.
 
Web
Polarfox
Оффтопик Пробовал, у меня все работает, вопросы?


Ладно моя помогай, какой код конкретно?
Весь с переключением и возвратом.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Rush
если либа не большая, проще ее портануть на фьюжн.
вобще первая мысль при прочтении что в одном скрипте 2 соединения к мускулу держать не получится. у тя в маинкоре уже установлено соединение с сервером мускула. просто попробуй использовать его, а не делай новое. т.е. выбери другую базу. но не скажу что проблема именно в этом. возможно есть настройки именно мускуула
 
Web
alaken
Прошу прощения за задержку с ответом.

maincore.php модифицирован, код авторизации изменен.

Поясню, проект сделан для внутреннего использования, в организации, с доменной авторизацией, чтобы не набирать две авторизации(доменную, и авторизацию сайта) был модифицирован maincore.php чтобы использовать только доменную авторизацию.

Это я к тому, что скорее всего не будет работать без авторизации на сервере, в общем главное чтобы переменная $_SERVER["REMOTE_USER"] была определена.

dbconf.php - это параметры соединения с сторонней базой (не с базой fusion) для тестов нужно установить необходимые параметры.

test.php - тестовый файл, собственно тут реализован похожий с моим приложением код, в котором я не могу получить результат.

Где я не прав?


Параметры системы:
Программное обеспечение Webserver Apache/2.2.12 (Win32) PHP/5.3.0
PHP версия 5.3.0
MySQL версия сервера 5.1.37
PHP-Fusion версия 7.02.03
alaken присоединено следующее:файл:
code.7z [10.94кБ / 324 Загрузки]

Изменил(а) alaken, 08.10.2012 11:01
 
alaken
Удалось локализовать проблему, но решение пока не нашел.
Проблема в том, что не происходит выбор базы данных. Хотя в коде выбор базы идет следом после соединения:

Скачать исходники  Код
   function Connect( $db_address, $db_name, $login, $password )
   {
      $this->Connection = mysql_connect( $db_address, $login, $password );
      $this->Selection = mysql_select_db( $db_name,  $this->Connection);

      return $this->Connection;
   }



ErrorMessage:Table 'fusion.org_emploees' doesn't exist
 
alaken
Проблема разрешилась.

помогло следующее замечание

Замечание к mysql_connect

Замечание:
При указании параметру server значения "localhost" или "localhostaeort" клиентская библиотека MySQL будет пытаться соединиться с локальным сокетом. Если вы всё же хотите использовать TCP/IP, используйте адрес "127.0.0.1" вместо "localhost". Если клиентская библиотека пытается подключиться не к тому локальному сокету, это можно исправить через указание директивы в конфигурации PHP, после чего можно оставлять параметр server пустым.


Изменил localhost на 127.0.0.1, все заработало нормально.

Локальный сервер используется для тестирования, на боевом скорее всего таких проблем не возникло.

Всем спасибо!
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Топ 5 пользователей форума
Alex Alex (1,198)   Zaxap Zaxap (1,078)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)