У Вас не удалена папка /install/?
Хакеры идут к Вам!!!

Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Настройки прав доступа по группам
  • Настройки прав доступа по каждой категории
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
Loading

Go Back   форум vBSupport.org > > >
Register Изображения Меню vBsupport Files Manager Аллея Звёзд Реклама на форуме Search Today's Posts Mark Forums Read
  • Мемберка
  • Администраторам
  • Premoderation
  • For English speaking users
  • Изменения в правах
  • Каталог Фрилансеров
Пароли на скачивание файлов в Member Area меняются автоматически каждый день
Если вам нужно скачать какой то скрипт, за паролем ко мне в ЛС
привет какирам kerk
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Не можете скачать вложение?
Изменения в правах групп пользователей
внимательно читаем эту и эту темы
Короткая версия - тут
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

 
 
Первый пост
Old  
DpoHro
Простоузер
Default 0

Ну это дело привычки, главное он производительнее, хотя это скорее для больших проектов важно.
 
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
Old  
airforlife
Простоузер
Default 0

Народ, а как быть с сессиями? Как их можно подключить? Дело в том, что хочу сделать блок приветствия как в vBa, но прикрутить его к самописной страничке (по инструкции с вашего комюнити в ливжурнале.), но не могу вкурить (точнее понятия не имею), как сделать сессии и куки т.е. чтобы запоминал посетителя.

Не прошу делать за меня, скажите где копать. Заранее спасибо.
 
Old  
kerk
k0t
 
kerk's Avatar
Default 0

Quote:
Originally Posted by airforlife View Post
как сделать сессии и куки т.е. чтобы запоминал посетителя.
если все сделано правильно, форум сам запомнит...
после авторизации на своей странице (вэлкам бэк, приветствие, бла, бла), куда происходит редирект?
на ту же страницу или куда то в определенное место?
 
Old  
Malcolm Reed
Эксперт
 
Malcolm Reed's Avatar
Default 0

DpoHro, airforlife, вы уж определитесь, что и как вы все-таки хотите сделать.

Варианта для интеграции может быть три.
1) Сайт и форум крутятся на одной БД (простой, но тяжелый для базы вариант, особенно если сайт и форум достаточно посещаемый. Да и сайт будет грузиться дольше, чем он грузился бы на отдельной бд).
В этом случае тебе достаточно вставить на сайт такой код (на все страницы, где нужно распознавание пользователя)
PHP Code:
function esc($value)
{
    return 
"'" mysql_escape_string($value) . "'";
}

$userinfo false;
if (
$_COOKIE['bbsessionhash'])
{
 
$sess_hash esc($_COOKIE['bbsessionhash']);
 
$query mysql_query("SELECT session.userid, user.* FROM session LEFT JOIN user ON user.userid=session.userid
 WHERE session.sessionhash=
$sess_hash LIMIT 0,1") or die(mysql_error());
 if (
mysql_num_rows($query) > 0)
 {
  
$userinfo mysql_fetch_assoc($query);
   
mysql_query("UPDATE session SET lastactivity='".time()."', location='http://site.ru' WHERE userid='{$userinfo['userid']}' LIMIT 1") or die(mysql_error());
 }
}
if (!
$userinfo AND $_COOKIE['bbuserid'] AND $_COOKIE['bbpassword'])
{
 
$userid intval($_COOKIE['bbuserid']);
 
$password $_COOKIE['bbpassword'];
 
$query mysql_query("SELECT * FROM user
 WHERE userid=
$userid LIMIT 1") or die(mysql_error());
 if (
mysql_num_rows($query) > 0)
 {
  
$userinfo mysql_fetch_assoc($query);
  if (
md5($userinfo['password']) != $password)
  {
   
$userinfo false;
  }
  else
  {
   
$ses_id md5(rand(1,1000) . $_SERVER['REMOTE_ADDR']); // знаю, смешно.
   
mysql_query("INSERT INTO session (sessionhash,     userid,     host,     idhash,     lastactivity,     location,     useragent)
   VALUES
   ('"
.$ses_id."',
   '"
.$userinfo['userid']."',
   "
.esc($_SERVER['REMOTE_ADDR']).",
   "
.esc(md5($_SERVER["HTTP_USER_AGENT"].fetch_substr_ip(getenv("REMOTE_ADDR")))).",
   '"
.time()."',
   'http://site.ru',
   "
.esc($_SERVER["HTTP_USER_AGENT"])."
   ) "
) or die(mysql_error());   
   
setcookie("bbsessionhash"$ses_id);
  }
 }

Оффтоп

Использование:
PHP Code:
if ($userinfo)
{
 echo 
'Hello ' $userinfo['username'];
}
else
{
 echo 
'Hello, Guest!';

Вариант 2:
Сайт и форум крутятся на разных БД. В этом случае тебе придется как-то реализовать автоматическое копирование таблицы user к себе на сайт и забыть про общие сессии - на сайте сессия будет своя. Вариант, имхо, самый оптимальный, но терпения у меня на него никогда не хватало поэтому без примера.

Вариант 3:
Сайт и форум крутятся на разных БД, но авторизация на сайте производится через форумную БД (через оригинальную таблиц user). Сессии при этом хранятся на сайте, и не имеют никакого отношения к форумным сессиям. Это - на любителя. Я такую систему использовал когда мне нужно было на сайте логинить только админов, потому что коннектиться к двум базам сразу весьма накладно для сайта. Тем не менее, если юзеров на сайте не много, этот вариант намного проще варианта номер 2, и, возможно, иногда даже жрет меньше ресурсов чем вариант номер 1.
Примера кода не будет, но могу рассказать теорию:
Ищем у юзера куку с sessionid или с userid и password (второе предпочтительно, делаться должно первым делом). После этого коннектимся к форумной БД, согласно имеющимя данным пытаемся опознать нашего юзера (сначала по логину и паролю в куках, потом по сессии в тех же куках, если он не ставил галочку "запомнить"). Если опознали - считываем все данные об этом юзере и помещаем их в сайтовую БД в свою таблицу sessions, и создаем у юзера вторую куку с сессией, что-то вроде site_sessionid. Далее мы уже сможем забыть про форумную БД и брать всю информацию о юзере из БД сайта, используя site_sessionid, хранящийся в куках.
Но это, повторяю, на любителя. Такой вариант лучше всего использовать людям, разбирающимся в том что и как будет нагружать ихний сайт. В умелых руках он бывает полезен, в неумелых сделает только хуже...
 
Old  
airforlife
Простоузер
Default 0

kerk, редирект на ту же страницу откуда происходилаа авторизация, при этом авторизации не происходит.


Malcolm Reed,спасибо. Буду разбираться. А как же тогда все происходит в случае использования vBAdvanced? По первому варианту
 
Old  
kerk
k0t
 
kerk's Avatar
Default 0

Quote:
Originally Posted by airforlife View Post
А как же тогда все происходит в случае использования vBAdvanced? По первому варианту
именно так и происходит, ненадо изобретать велосипед
сколько таких страниц уже создал и с редиректом на прежнюю страницу и на другую (прописанную жестко в скрипте), здесь придется немного "пошаманить", я переписывал вобловскую функцию
а во всем остальном, я повторюсь, если все сделано правильно, форум сам "запомнит" узера
если не веришь, дай полчасика, я накидаю отдельную страницу только с авторизационной формой, сам зайдешь и все увидишь
 
Old  
Malcolm Reed
Эксперт
 
Malcolm Reed's Avatar
Default 1

Quote:
Originally Posted by airforlife View Post
А как же тогда все происходит в случае использования vBAdvanced? По первому варианту
Угу. Потому что он самый простой

Да, забыл дописать. Там в приведенном мной куске кода... после его выполнения все что нужно о юзере доступно в массиве userinfo. Если переменной userinfo не существует, значит гость.
То есть:
PHP Code:
if ($userinfo)
{
 echo 
'Hello ' $userinfo['username'];
}
else
{
 echo 
'Hello, Guest!';

 
Old  
kerk
k0t
 
kerk's Avatar
Default 4

airforlife,
простенькая страничка
http://vbsupport.org/page.php
===
так же следует помнить, что в настройках Cookies и заголовки HTTP => Путь для сохранения cookies должен стоять параметр "/" (слэш) иначе при авторизации, форум покажет "приветственный редирект" (), но не запомнит узера (сессии, куки...)
если нужно что бы редиректило на определенную страницу после успешного логина, можно пользовать хук login_redirect (если я правильно понял его назначение )
Attached Files
File Type: php page.php (3.5 KB, 39 views)
 
Old  
airforlife
Простоузер
Default 0

kerk,
Malcolm Reed, спасибо,буду пробовать

Last edited by airforlife : 10-16-2008 at 09:34 AM.
 
Old  
VeleslaV
Простоузер
Default Аватарка 0

Здравствуйте. Использую последний предложеній вариант для интеграции. Но вот проблема, не могу понять как ко всему этому:

PHP Code:

    $page 
"<table>
    <tr>
    <td>
    <div>
        <strong>Hello <a href=\""
.$forumdir."/member.php?u=".$vbulletin->userinfo['userid']."\">" .$vbulletin->userinfo['username']."</a></strong><br />
        <a href=\""
.$forumdir."/login.php?$session[sessionurl]do=logout&amp;logouthash=".$vbulletin->userinfo['logouthash']."\" onclick=\"return log_out('{$vbphrase['sure_you_want_to_log_out']}')\">".$vbphrase['log_out']."</a>
    </div>
    </td>
  </tr>
</table>"

добавить вывод аватарки залогиненого пользователя. Очень прошу помочь.
 
 

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 03:42 PM.


Powered by vBulletin® Version 3.0.10
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.