Intellect Board — cистема управления сайтом

Построение сайта на основе форума

Intellect Board — cистема управления сайтом »   Техническая поддержка версии 2.18 »   Мост в галерею
RSS

Мост в галерею

Создаем мост из форму в gallery2

Текущий рейтинг темы: Нет
Выводить сообщения
Правила раздела

<<Назад  Вперед>>Страницы: 1 2
Модераторы: aerograf, wsx
Печать
 
Gich
Почетный участник

Gich
Всего сообщений: 123
Рейтинг пользователя: 6


Ссылка


Дата регистрации на форуме:
10 нояб. 2006
Вот сравнил я фото галерею форума и программу Gallery2.
Галерея обалденная.

"+"-сы
-создание миниатюр
-обработка изображений
-иерархия альбомов

"-"-сы
-добавить пользователя может только админ
-в шаблонах нельзя использовать php и SSI
-галерея работает на UTF-8.
-нельзя отключить шифрование пароля

Для приличного сайта связка галерея-форум идеальная.
Предлагаю способ решения:
1) В скрипт, осуществляющий вход пользователя и проверку пароля, в случае удачной авторизации включить следующий функциональный код:
-соединение с вражеской "бд" галереи
-перекодировка имени изера, пасса, имени в utf-8
-шифрование пароля методом шифрования галереи
2) Ветвление:
а. если пользователя, авторизовавшегося на форуме в базе нет, то завести его запись в базе галереи в полном логическом соответствии с записью в базе форума (перекодировать в UTF-8 логин, имя, пароль, зашифровать пароль). Для пользователя, входящего в галерею, или форум имя на форуме = и имя в галереи.
б. если пользователь существует - обновить его данные в галереи (вдруг он что-то сменил) Механизм перекодировки и шифрования пароля сохраняется, как в пункте "а".

Механизм шифрования пароля, я вытащил из галереи, проверил, работает.
Механизм перекодировки: процедура iconv("CP1251","UTF-8",$string); -
использовать функции Gallery2. Нужно подключить коло 8 классов, переменные GLOBAL На локалхосте работало, перенес на сервак, сдохло. Ошибку пока не локализовал.
Данные для работы моста брать из переменной $inuser

Что требуется решить:
1) Куда именно, в какое место скриптов форума включаем мост.
2) Как соединяемся параллельно с "вражеской" галеоейной БД.
ПРИМЕЧАНИЕ БД стоит на одном сервере с БД форума, также MySQL

Если изложить все вышеописанное в виде кода - получится что-то такое,(см файл) Этот код работает сам по себе. К форуму пока его подключить не удалось.

Хотелось бы увидеть мнение, а в идеале совет, разработчиков форума

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

Прикрепленный файл (bre.php, 3027 байт, скачан: 700 раз)
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
1. В IntB 2.18 и следующих все процедуры по регистрации/изменению профиля и тому подобных действиях вынесены в файл auth.php (точнее, туда вынесены процедуры, вызываемые при этих действиях). Параметры процедур и некоторые комментарии описаны в самом этом файле. Поэтому самый простой вараинт — это вписать туда код, который будет создавать учетную запись пользователя и в галерее при его регистрации на форуме (а вот уже существующих придется синхронизировать вручную).
Правда, для обратного процесса (переноса из галереи в форум) придется модифицировать код галереи.
2. Насчет перекодировки: можно сделать и проще. Создавать второе соединение с помощью mysql_connect (только указать там в параметрах, что нужно создавать именно новое соединение, см. мануал по PHP), и в нем выполнять SET NAMES utf8.

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
Gich
Почетный участник

Gich
Всего сообщений: 123
Рейтинг пользователя: 6


Ссылка


Дата регистрации на форуме:
10 нояб. 2006
Хм... Допустим, юзер регится. Запись появилась.
Юзер сменил пароль. Тогда?

Но ведь при входе на форум, происходит сверка пароля? Вот туда бы залепить.

Если попробовать через function auth_checkpass(&$inuser)?

А вот перекодировку делать приходится. Я правда, этот вопрос уже решил.


4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
Так в auth.php есть функция и на случай смены пароля (кажется, profile_change называется).
Впрочем, еще можно поставить проверку в функции put_user, которая вызывается при входе пользователя на форум (или при первом появлении его в течение суток, если он вошел с запоминанием) — брать данные из БД галереи и сравнивать их с форумными.

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
Gich
Почетный участник

Gich
Всего сообщений: 123
Рейтинг пользователя: 6


Ссылка


Дата регистрации на форуме:
10 нояб. 2006
Странно, что-то я put_user не нашел ни где. Я окончательно разобрался через дебаг с тем, как, что и куда пишется при добавлении новых юзеров, обновлении и прочим в галереи. При попытке внедрения в auth_checkpass сразу глобал ЕГОГ... Стоит только попытаться навести коннект с вражеской для форума базой.
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
А, понял... put_user появилось только в 2.19, где я существенно переделал систему аутентификации, чтобы снизить нагрузку на БД.
Что касается global error, то дело в том, что при работе с чужой базой через второе соединение нужно использовать не функции db_, а непосредственно функции mysql_, встроенные в PHP и хранить вторую переменную $link где-то отдельно.

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
Gich
Почетный участник

Gich
Всего сообщений: 123
Рейтинг пользователя: 6


Ссылка


Дата регистрации на форуме:
10 нояб. 2006
Поздравляю с новым годом, желаю успехов, здоровья, не глючного кода!

Только не совсем понял, это как " в другом месте"? Можете разъяснить?
$lnk_gal=mysql_connect($server_gal,$login_gal,$pass_gal);
mysql_query("SET NAMES 'utf8_bin'",$lnk_gal);
mysql_select_db($db_gal);
сейчас, работа с вражеской БД выглядит вот так. Может я чего-т не понял.Там в файлике сверху, это приведено.
Я планирую, после окончательного написания моста, его тут выложить... Если конечно кто-то в этом будет заинтересован...

Вопрос с функцией, пока остался открыт. Мой выбор верен?

Ну... Еще раз с наступившим...
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
Gich, для версии 2.18 — да, там нужно в auth_checkpass делать.
В 2.19 я файл auth.php несколько переделал, как я уже говорил.

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
Gich
Почетный участник

Gich
Всего сообщений: 123
Рейтинг пользователя: 6


Ссылка


Дата регистрации на форуме:
10 нояб. 2006
Здравствуйте, вот есть тут пара вопросов... И предложений


[q]
Что касается global error, то дело в том, что при работе с чужой базой через второе соединение нужно использовать не функции db_, а непосредственно функции mysql_, встроенные в PHP и хранить вторую переменную $link где-то отдельно.
[/q]


Попробовал mysql_. Матюги глобал егога. Вот получается следующие варианты:

1. Написать еще одну функцию function &db_connect($host,$user,$password,$name), под вторую базу с добавлением в глобал $user,$password,$name , либо просто ввести на месте в модифицированном файле mysql.php

2. На время работы с вражеской БД вызывать function db_close(&$link), после окончания работы, восстанавливать работу с БД форума, вызвав function &db_connect.

Что из этих способов может вызвать меньше последствий и на Ваш взгляд, как разработчика, лучше?

В чем разница между function &db_connect и function &db_pconnect?

Оффтопик: Недавно склепал под галерею перекодировщик (*) to (UTF-8) без исgользования iconv Надо кому? Работает на регулярных выражениях по таблицам. Надо кому? Кода припрет, ведь хрен найдешь!
ЗЫ с его помощью можно решить любые траблы с русской кодировкой в БД.


4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3299
Рейтинг пользователя: 70


Ссылка


Дата регистрации на форуме:
29 сен. 2001
Вопрос: так какой полный текст у GLOBAL ERROR? А то его в этой теме так и не появилось.

---
Спорить со мной по поводу того, что в IntB будет, а чего нет -- бесполезно!
<<Назад  Вперед>>Страницы: 1 2
Модераторы: aerograf, wsx
Печать
Intellect Board — cистема управления сайтом »   Техническая поддержка версии 2.18 »   Мост в галерею
RSS

1 посетитель просмотрел эту тему за последние 10 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
Ограничение доступа
не отображаются разделы
Архив версий
Установка стиля на Intellect Board 2.22
Завершилась работа над новой версией 3.00

Самые активные 5 тем RSS


Время выполнения скрипта: 0.0503. Количество выполненных запросов: 17, время выполнения запросов 0.0000
Creative Commons License Rambler's Top100 Rambler's Top100 Рейтинг@Mail.ru Valid HTML 4.01 Transitional Valid CSS!