Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 15.10.2012, 16:16   #1
Dmitry Dulepov
Продвинутый
 
Аватар для Dmitry Dulepov
 
Регистрация: 28.04.2010
Сообщений: 73
По умолчанию

Скажите, что именно вы хотите сделать. Возможно, мы скажем вам – как
Dmitry Dulepov вне форума   Ответить с цитированием
Старый 17.10.2012, 22:33   #2
Ивано
Guest
 
Сообщений: n/a
Unhappy

В общем научился работать с сессиями для анонимных пользователей и авторизированных пользователей (прочитал здесь - http://www.koller-webprogramming.ch/...-mit-sessions/). С удивлением узнал, что если на любой странице передать через post user, pass и pid-хранилища записей пользователей - то произойдет аудентификация пользователя без всяких расширений и прочего.

С сессиями работаю так:

PHP код:
$typesess = ($GLOBALS['TSFE']->loginUser == 'user' 'ses');
$sessionData $GLOBALS['TSFE']->fe_user->getKey($typesess'tx_test_pi1');
                    
        
$sessionData['test'] = "Hellow Word";
                
//Перезаписваем сессию (обновляем "Данные в ДАТА")
$GLOBALS['TSFE']->fe_user->setKey($typesess'tx_test_pi1'$sessionData);
$GLOBALS['TSFE']->fe_user->sesData_change 1;
$GLOBALS['TSFE']->fe_user->storeSessionData(); 

Единственное что не могу понять, так как сделать так, что бы после входа в систему на основе кода который привожу в начале данной темы - запомнить этот вход на всегда... Т.е. что бы браузер закрыл и открыл и не приходилось входить по новой (аналог кнопки "Запомнить пароль").
  Ответить с цитированием
Старый 18.10.2012, 12:00   #3
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

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

И если в дополнение к user/pass передать permalogin=1, то логин будет сохраненным (как долго его ярдо запомнит, задается кажется в localconf.php). Причем все это можно передевать как GET, так и POST - все равно ядро пользователя авторизует.
dmartynenko вне форума   Ответить с цитированием
Старый 18.10.2012, 12:40   #4
Ивано
Guest
 
Сообщений: n/a
По умолчанию

Подобное решение мне очень даже подходит и готов даже и не использовать выше описанный код (он даже и не нужен)...
Но есть одно НО.

Вот форму создаю:

<form>

<input name="user">
<input name="pass">
<input name="permalogin" type="hidden" value=1> - запомнить вход пользователя (даже после закрытия открытия браузера)
<input name="pid" type="hidden" value="id-хранилища записей пользователя">
<input type="hidden" name="logintype" value="login" />

И есть еще один параметр котрый , как понимаю, можно передать через hidden - это "redirect_url"
Как понимаю - он должен перенаправить на указанную страницу
в случае успешной авторизации (или возможно буду не прав) --- НО ОН У МЕНЯ ПОЧЕМУ-то не срабатывает - вход в систему есть, а ридеректа нет на заданную страницу...
<input name="redirect_url" type="hidden" value="/index.php?id=303">

Как им возможно воспользоваться или такого параметра нет?

</form>

Последний раз редактировалось Ивано; 18.10.2012 в 12:58
  Ответить с цитированием
Старый 18.10.2012, 13:01   #5
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Вот как раз redirect_url и прочие вещи - это не из ядра. Ядро только производит логин/логаут и ничего более.

Это уже дополнительная функциональность которую предоставляет экст felogin (поищите redirect_url в felogin\pi1\class.tx_felogin_pi1.php).
dmartynenko вне форума   Ответить с цитированием
Старый 18.10.2012, 13:23   #6
Ивано
Guest
 
Сообщений: n/a
По умолчанию

$check = FALSE;
$loginData = array(
'username' => "user",
'uident_text' => "pass",
'status' => 'login',
);

$GLOBALS['TSFE']->fe_user->checkPid = ''; //do not use a particular pid
$info = $GLOBALS['TSFE']->fe_user->getAuthInfoArray();
$info['db_user']['checkPidList'] = 1;
$info['db_user']['check_pid_clause'] = 'AND pid IN(362)';
$user = $GLOBALS['TSFE']->fe_user->fetchUserRecord($info['db_user'], $loginData['username']);



$login_success = $GLOBALS['TSFE']->fe_user->compareUident($user,$loginData);

#Если пользователь найден
if($login_success){

$GLOBALS['TSFE']->fe_user->createUserSession($user);
$GLOBALS["TSFE"]->fe_user->loginSessionStarted = TRUE;
$GLOBALS ["TSFE"] ->fe_user->start();

}


Так понимаю в данном коде никак не получиться сохранить сессию на вечно?...
  Ответить с цитированием
Старый 18.10.2012, 13:37   #7
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Ну что же вы не проявляете любознательность?

Поиск "permalogin" по коду ядра дает что:
1. Можно задать в localconf.php $GLOBALS['TYPO3_CONF_VARS']['FE']['permalogin'] = 2 и включить permalogin глобально.
2. Можно задать его в своем коде перед ручным логином.
3. * Не рекомендую. Можно в конце концов задать permalogin в $_GET или $_POST
Код:
typo3\sysext\cms\tslib\class.tslib_feuserauth.php

if ($this->getMethodEnabled)	{
	$isPermanent = t3lib_div::_GP($this->formfield_permanent);
} else {
	$isPermanent = t3lib_div::_POST($this->formfield_permanent);
}
dmartynenko вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой механизм публикации картинок на сайте выбрать? Илья Общие вопросы 3 18.04.2007 17:46


Часовой пояс GMT +4, время: 23:16.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория