Vou deixar bem claro que sou novo em yii… Então, qualquer besteira que eu disser aqui, não levem em consideração.
Mas minha dúvida é a seguinte:
Tenho um sistema de atendimento controlado por login. Porém, gostaria que um usuário ficasse logado em apenas um local. Se eu fizer login em duas máquinas, a primeira perde a sessão.
use session por db, extenda CDbHttpSession para gravar o id do usuario numa coluna separada e ao fazer o login faça um delete nessa tabela onde o id for o mesmo do que o cara q ta logando
mas basicamente faça o seguinte, em components na config
'session'=>array(
'class'=>'MinhaSession',
),
e cria uma class MinhaSession em protected/components
class MinhaSession extends CDbHttpSession{
//aqui sobrescreva os metodos necessários pra fazer o que vc quer, algo como
protected function createSessionTable($db,$tableName)
{
$sql="
CREATE TABLE $tableName
(
id CHAR(32) PRIMARY KEY,
expire INTEGER,
data TEXT,
user INTEGER
)";
$db->createCommand($sql)->execute();
}
}
Quando o usuário perde a sessão ou faz o logout, esse campo data fica em branco. Se o usuário estiver logado e eu alterar a linha que corresponde ao usuário logado deixando o compo data em branco, o usuário logado perde a sessão.
Foi onde eu travei… Não consigo fazer o campo data ficar em branco caso o usuário faça o login em outro computador.
Pois não sei como ele gera essa string que ele salva no campo data.
Alguma luz?
Valew
PS: ele insere as informações no banco de dados, logo após o código abaixo caso valide o login:
Cara, me ajuda! Já eu estou querendo criar várias sessions no mesmo! por exemplo: Quero que em cada guia um usuário diferente faça o login sem destruir a session anterior, ou seja criar outra session. Entente?