Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Juninho De Luca_54619

Sessões de usuário único

Recommended Posts

Salve galera!

Estou aprimorando o sistema que desenvolvi aqui para minha empresa.

Sempre que tenho tempo, aprimoro alguns pontos que deixam tudo mais dinâmico.

Sempre aproveito para reescrever o código e dar uma limpada e tals.

Percebi a necessidade de criar um ítem novo, mas esse ítem demanda

que apenas um usuário de cada vez edite a página.

 

Atualmente funciona da seguinte forma:

No db existe uma tabela com o número de linhas pré-definido. Cada vez que o usuário preenche os campos do form, ao invés de inserir, o sistema atualiza a tabela. Para limpar, ele preenche com NULL.

 

Funciona perfeitamente.

No entanto, gostaria de desenvolver uma área na qual vários usuários pudessem preenchem o mesmo formulário. Só que existe a seguinte possibilidade: dois usuários estão editando o mesmo formulário > o primeiro salva e fecha sua página > o segundo salva e fecha sua página, salvando sobre os dados que o outro havia inserido minutos antes.

 

Quero desenvolver algo no seguinte sentido: caso não haja ninguém online naquela página, o usuário pode editá-la sem problemas. Caso haja alguém logado editando aparecerá a mensagem:

 

"O usuário FULANO está editando esta página neste momento. É permitido apenas um usuário por sessão. Tente novamente mais tarde"

 

Tentei pesquisar nos fórums aqui, mas deu um problema e só consigo ver a primeira página dos resultados. Sempre que tento entrar na segunda página, direciona para o site tree.

 

É provável que surjam sugestões de uso de $_SESSION[]. Não tenho experiência com essa parte do PHP ainda. Mas se for a única solução... Pensei em fazer em cada tabela duas colunas:

 

|---SESSION---|---USER---|

|-------0---------|-FULANO-|

 

Neste caso, se um outro usuário tentar entrar, não conseguirá e receberá a mensagem.

 

|---SESSION---|---USER---|

|--------1---------|---NULL---|

 

Neste caso, o usuário poderá editar o conteúdo.

Pensei no JS/AJAX como solução. Ao fechar o browser, o usuário recebe um alerta de logout e ao clicar ok, suíta o status do SESSION/USER para 1/NULL e libera outro usuário para trabalhar.

 

Me ajudem! Valeu!



No caso minha ideia é que ao tentar carregar a página, a existência de um outro usuário seja verificado por um IF/ELSE em PHP mesmo. Essa minha ideia é válida ou to viajando muito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muda a estrutura da sua session

 

é só um exemplo mas pode ser aplicado simplesmente com essa "recursividade"

 

<?php
$_SESSION['user']['nomeUser'];

if(isset($_SESSION['user']) && !empty($_SESSION['user'])){
echo "O usuário".$_SESSION['user']['nomeUser']." esta editando o mesmo form";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ela é simplesmente um array, a diferença é que é uma variável global e pode ser acessada de qualquer página do seu site.

 

o que você terá com minhas dicas são arrays multidimensionais globais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.