Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Страницы 1
Вот такая вот задача, хочу использовать и нужно в общем то только одно - выяснить как проверить по куке тот ли это юзер на самом деле или нет... Как это сделать наиболее простым способом?
Я думаю буду пользоваться БД форума, добавлю нужных полей и все, так и использовать его везде на сайте, не будет с этим проблем?
p.s. Пробовал разбираться, пока не очень получается, первый раз форум вижу. Мне punbb нравился и я думал что он уже помер, но оказалось просто стали новую ветку делать, так что очень хорошо Как раз то что нужно, остальное я планирую сам доделывать по мере необходимости или с помощью плагинов, но вот все это шифрование не очень понятно, понятно что все завязано на hash_hmac и sha1, но как именно? Как проверить куку?
Offline
Для проверки пользователя служит ф-ия 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/
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
Огромное, сейчас разберемся
Offline
Все работает, еще подключать нужно:
include('/forum/include/functions.php');
include('/forum/config.php');
если на сайте использовать и поправить mysql запрос в общем то там лишнего больше, не так это и нужно на сайте
Offline
Подключают common.php
define('PUN_ROOT', dirname(__FILE__).'/');
require PUN_ROOT.'include/common.php';
Но действительно лишний функционал не нужен, так что лучше взять только отдельные функции и их использовать.
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
Это и правда тольк:
function forum_hmac();
var $cookie_seed;
var $cookie_name
И подключение к БД, но к ней я подключен на сайте, так что запрос переделал просто и убрал все лишнее оттуда. Еще раз спасибо, все просто оказалось
Offline
Скоро совсем не предстоит много всего по "запихиванию" его в сайт да и так чтобы красиво срастить "вход", "выход" и т.п., чтобы никто ничего не заметил.... Но это уже намного проще
Offline
Не все таки вы правы были, вытащил из header.php код который за генерацию ссылок отвечает аннонсы, заголовок форума и т.п. и в итоге common.php все таки понадобился как ни крути))
Offline
Страницы 1