Перейти к контенту

Сессии + интеграция чата и форума


Рекомендуемые сообщения

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

Проверить куки на наличие member_id и pass_hash, сделать соответствующий запрос к таблице ibf_sessions (проверить правильность пароля).
Ссылка на комментарий
Поделиться на других сайтах

с запросом и сравнением справлюсь, а вот куки проверить...

просто руки еще до них не дошли, если не трудно подскажите пожалуйста,

как правильно извлечь из кук member_id и pass_hash,

спасибо.

Ссылка на комментарий
Поделиться на других сайтах

Есть такая волшебная переменная: $_COOKIE

$_COOKIE['member_id'], например, в простейшем случае даст нам нужный member_id.

Однако учитывая то, что у куков могут быть ещё префиксы и т.п., самое правильное решение - сделать по образу и подобию функции my_getcookie(), которая лежит в functions.php

Ссылка на комментарий
Поделиться на других сайтах

все ясно.

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

 

у меня две папки domen.ru/forum/ и domen.ru/chat/ на одном домене

если я буду при входе в чат domen.ru/chat/index.php читать эти самые куки из форума, он извлечет эти данные из кук которые мне нужны или нет? если нет помогите пожалуйста разобраться как это осуществить, заранее благодарю.

Ссылка на комментарий
Поделиться на других сайтах

теперь только не понятно, если куков не существует, как это определить?

Проверь переменные на пусто/не пусто, да и все дела...

и вообще как опредилить какой кукис читать? там их много, или она считывает только от собственного домена?

Ты вообще знаком с механизмом работы куков? Куки читаются только свои.

 

меня две папки domen.ru/forum/ и domen.ru/chat/ на одном домене

если я буду при входе в чат domen.ru/chat/index.php читать эти самые куки из форума, он извлечет эти данные из кук которые мне нужны или нет?

Откуда я знаю? Самому попробовать слабо?

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

Если нет, то ты опять же сможешь сам себе помочь. Во-первых, прочитай те темы, что есть здесь по работе кукис (как правильно настроить, + тема "Авторизация" в разделе FAQ). Сначала попробуй настроить куки грамотно.

Во-вторых, если первое не поможет, см. выше:

самое правильное решение - сделать по образу и подобию функции my_getcookie(), которая лежит в functions.php

Ты функцию my_getcookie() смотрел? Ладно, риторический вопрос. :DВот, так посмотри! Там как раз на все случаи жизни, домены и префиксы особая обработка.

Ссылка на комментарий
Поделиться на других сайтах

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

вот сама функция my_getcookie()

function my_getcookie($name)

    {

  global $INFO, $HTTP_COOKIE_VARS;

 

  if (isset($HTTP_COOKIE_VARS[$INFO['cookie_id'].$name]))

  {

      return urldecode($HTTP_COOKIE_VARS[$INFO['cookie_id'].$name]);

  }

  else

  {

      return FALSE;

  }

 

    }

 

как я понял это всего лишь его часть..

ладно не важно, буду пробовать первое, спасибо за совет.

 

Откуда я знаю? Самому попробовать слабо?

не слабо, просто не до этого было, вот и решил перед эксперементом поинтересоваться :D

 

и последнее, раз тема про интеграцию воспользуюсь моментом спросить какая замена символов у форума при регистрации переменной $name? т.е. имя при регистрации.

В файле регистрации я наткнулся на такое

if (!preg_match("/^(?:[\d\w]){32}$/", $user)){выполнение кода}

но это не сработало.

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

Ссылка на комментарий
Поделиться на других сайтах

вот сама функция my_getcookie()

как я понял это всего лишь его часть..

Нет, всё ОК. Что здесь видим:

1. Раз используется массив $INFO, значит, тебе надо будет сделать в начале твоего файла

require('path/to/forum/conf_global.php');

2. Собственно, всё. Можешь скопировать функцию my_getcookie() целиком в твой файл и использовать, например:

$member_id = my_getcookie('member_id');
$pass_hash = my_getcookie('pass_hash');
if (! $member_id) echo "Вы не авторизованы";

и т.д.

 

и последнее, раз тема про интеграцию воспользуюсь моментом спросить какая замена символов у форума при регистрации переменной $name? т.е. имя при регистрации.

Вот что есть в Register.php по теме:

$in_username = trim( str_replace( '|', '|' , $ibforums->input['UserName'] ) );
$in_username = preg_replace( "/\s{2,}/", " ", $in_username );

Вроде всё. :D

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.