Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2011-11-15 14:39:18

Sergey01
Участник
Зарегистрирован: 2011-11-15
Сообщений: 16

Использование форумного профиля на сайте? Как?

Вот такая вот задача, хочу использовать и нужно в общем то только одно - выяснить как проверить по куке тот ли это юзер на самом деле или нет... Как это сделать наиболее простым способом?

Я думаю буду пользоваться БД форума, добавлю нужных полей и все, так и использовать его везде на сайте, не будет с этим проблем?

p.s. Пробовал разбираться, пока не очень получается, первый раз форум вижу. Мне punbb нравился и я думал что он уже помер, но оказалось просто стали новую ветку делать, так что очень хорошо smile Как раз то что нужно, остальное я планирую сам доделывать по мере необходимости или с помощью плагинов, но вот все это шифрование не очень понятно, понятно что все завязано на hash_hmac  и sha1, но как именно? Как проверить куку?

Offline

#2 2011-11-15 15:20:27

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Использование форумного профиля на сайте? Как?

Для проверки пользователя служит ф-ия check_cookie в файле functions.php.
Вот измененный вариант

    $now = time();

    // If the cookie is set and it matches the correct pattern, then read the values from it
    if (isset($_COOKIE[$cookie_name]) && preg_match('%^(\d+)\|([0-9a-fA-F]+)\|(\d+)\|([0-9a-fA-F]+)$%', $_COOKIE[$cookie_name], $matches))
    {
        $cookie = array(
            'user_id'            => intval($matches[1]),
            'password_hash'     => $matches[2],
            'expiration_time'    => intval($matches[3]),
            'cookie_hash'        => $matches[4],
        );
    }

    // If it has a non-guest user, and hasn't expired
    if (isset($cookie) && $cookie['user_id'] > 1 && $cookie['expiration_time'] > $now)
        if (forum_hmac($cookie['user_id'].'|'.$cookie['expiration_time'], $cookie_seed.'_cookie_hash') == $cookie['cookie_hash'])
        {
            // Check if there's a user with the user ID and password hash from the cookie
            $result = $db->query('SELECT u.*, g.*, o.logged, o.idle FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'groups AS g ON u.group_id=g.g_id LEFT JOIN '.$db->prefix.'online AS o ON o.user_id=u.id WHERE u.id='.intval($cookie['user_id'])) or error('Unable to fetch user information', __FILE__, __LINE__, $db->error());
            $pun_user = $db->fetch_assoc($result);

            if (isset($pun_user['id']) && forum_hmac($pun_user['password'], $cookie_seed.'_password_hash') === $cookie['password_hash'])
            {
                // юзер определен и его данные находятся в $pun_user
            }
        }

Если нужны кроссдоменные куки, то смотри мод http://fluxbb.org/resources/mods/cross- … on-cookie/

Offline

#3 2011-11-15 15:29:12

Sergey01
Участник
Зарегистрирован: 2011-11-15
Сообщений: 16

Re: Использование форумного профиля на сайте? Как?

Огромное, сейчас разберемся smile tongue

Offline

#4 2011-11-15 16:58:54

Sergey01
Участник
Зарегистрирован: 2011-11-15
Сообщений: 16

Re: Использование форумного профиля на сайте? Как?

Все работает, еще подключать нужно:

    include('/forum/include/functions.php');
    include('/forum/config.php');


если на сайте использовать и поправить mysql запрос в общем то там лишнего больше, не так это и нужно на сайте

Offline

#5 2011-11-15 17:06:29

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Использование форумного профиля на сайте? Как?

Подключают common.php

define('PUN_ROOT', dirname(__FILE__).'/');
require PUN_ROOT.'include/common.php';

Но действительно лишний функционал не нужен, так что лучше взять только отдельные функции и их использовать.

Offline

#6 2011-11-15 17:12:23

Sergey01
Участник
Зарегистрирован: 2011-11-15
Сообщений: 16

Re: Использование форумного профиля на сайте? Как?

Это и правда тольк:

function forum_hmac();
var $cookie_seed;
var $cookie_name

И подключение к БД, но к ней я подключен на сайте, так что запрос переделал просто и убрал все лишнее оттуда. Еще раз спасибо, все просто оказалось smile

Offline

#7 2011-11-15 17:15:17

Sergey01
Участник
Зарегистрирован: 2011-11-15
Сообщений: 16

Re: Использование форумного профиля на сайте? Как?

Скоро совсем не предстоит много всего по "запихиванию" его в сайт да и так чтобы красиво срастить "вход", "выход" и т.п., чтобы никто ничего не заметил....  smile Но это уже намного проще

Offline

#8 2011-11-19 10:50:10

Sergey01
Участник
Зарегистрирован: 2011-11-15
Сообщений: 16

Re: Использование форумного профиля на сайте? Как?

Не все таки вы правы были, вытащил из header.php код который за генерацию ссылок отвечает аннонсы, заголовок форума и т.п. и в итоге common.php все таки понадобился как ни крути))

Offline

Подвал доски

Под управлением FluxBB. Хостинг Hostens