Обычный работает.
Данный код у меня успешно работает только в google chrome.
Opera и IE - не сохраняют как понимаю сессию.
Суть кода - выводится форма авторизации пользователя если не залогинен и наоборот - если залогинин выводится формы выхода.
PHP код:
<?php
require_once(PATH_tslib.'class.tslib_pibase.php');
class tx_gregre2_pi1 extends tslib_pibase {
var $prefixId = 'tx_gregre2_pi1'; // Same as class name
var $scriptRelPath = 'pi1/class.tx_gregre2_pi1.php'; // Path to this script relative to the extension dir.
var $extKey = 'gregre2'; // The extension key.
var $pi_checkCHash = true;
function main($content, $conf) { global $_SERVER, $_POST;
$this->conf = $conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
//Если переданны POST_данные
if ($_POST['autoriz'] == true)
{
$check = FALSE;
$loginData = array(
'username' => $_POST['loging'],//"userz",
'uident_text' => $_POST['password'], //"pass",
'status' => 'login',
);
$GLOBALS['TSFE']->fe_user->checkPid = FALSE; //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(457)';
$user = $GLOBALS['TSFE']->fe_user->fetchUserRecord($info['db_user'], $loginData['username']);
#$BE_USER->writelog(255,2,0,1,'User %s logged out from TYPO3 Backend',Array($BE_USER->user['username'])); // Logout written to log
#$BE_USER->logoff();
#header('Location: '.t3lib_div::locationHeaderUrl(t3lib_div::_GP('redirect')?t3lib_div::_GP('redirect'):'index.php'));
$login_success = $GLOBALS['TSFE']->fe_user->compareUident($user,$loginData);
if($login_success){
#$GLOBALS['TSFE']->fe_user->createUserSession($user);
#$GLOBALS['TSFE']->fe_user->start();
#$GLOBALS['TSFE']->loginUser = 1;
$GLOBALS["TSFE"]->fe_user->createUserSession($user);
$GLOBALS["TSFE"]->fe_user->loginSessionStarted = TRUE;
# $GLOBALS["TSFE"]->fe_user->user = $GLOBALS["TSFE"]->fe_user->fetchUserSession();
$GLOBALS ["TSFE"] ->fe_user->start();
#$GLOBALS ["TSFE"] ->loginUser = 1;
#return 1;
$user = tslib_eidtools::initFeUser();
$GLOBALS['TSFE']->loginUser = $user ? 1 : 0;
$GLOBALS['TSFE']->fe_user = $user;
}
#print_r($_POST);
}
//Если переданны POST_данные - на выход и разрыв сессии
if ($_POST['logingout'] == true)
$GLOBALS['TSFE']->fe_user->logoff();
if ( $GLOBALS['TSFE']->loginUser == 1 )
{
$content = "Вы авторизированны <form method='post'><input type='submit' name='logingout' value='Выйти из системы'></form>
<h4>Информация о пользователе</h4><pre>";
}
else
{
$content='Вы не авторизированны!<hr><form method="post">
<input name="loging" type="text"><br />
<input name="password" type="text"><br />
<input type="submit" name="autoriz" value="Авторизироваться"></form>';
}
return $this->pi_wrapInBaseClass($content);
}
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/gregre2/pi1/class.tx_gregre2_pi1.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/gregre2/pi1/class.tx_gregre2_pi1.php']);
}
?>
Во всех браузерах сессии создаются в таблице fe_sessions.
Так понимаю это проблема в cookie - как можно их подправить?