Duvida de PHP

Gente…tom com um duvida.

To aprendendo PHP já algum tempo, e to progredindo bem. Esses dias aprendi a criar sessões em um sistema. Mas ai me surgiu uma duvida: As sessões, que se cria quando o usuário loga é o mesmo que perfil de usuário?..cada usuário que logar estará no perfil dele…é isso? So tenho essa duvida, alguém poderia me responder e me explicar melhor esse assunto?

obrigado.

1 curtida

Sua questão está muito vaga, na prática, de que perfil está falando? O que está precisando atender de funcionalidade?

Sessao do PHP é um recurso pra guardar temporariamente qualquer dado no lado servidor, enquanto a sessao nao expirar.

1 curtida

Imagine a sessão como um espaço para o usuário, cada um tem seu espaço e não se misturam… e nesse espaço vc pode guardar o que quiser…

Perfil geralmente damos o nome para um tipo de usuário: administrador, usuário comum, etc…

E ai javaflex…vc sempre me ajudando…

então…o perfil que to falando é aquele em que o usuario entra e cria um avatar, um nome…tipo esse aqui do guj…onde vc pode manipular o que quiser, ou seja, o seu perfil. E disso que to falando. E por isso que to querendo saber…

o que to querendo fazer é um sistema (ja to em andamento) onde os usuários poderão usar o site sem que um usuário possa ver o que o outro esta fazendo. Acho ate que ja perguntei isso aqui.

e com as sessoes queria saber se e assim que funciona. Se um usuario entrar no sistema online, guardar o que ele quiser e o outro usario nao ver o que ele guardou.

Neste caso Session nao é indicado, pois dura somente enquanto o usuário estiver com o browser aberto ou a sessao dele encerrar por qualquer outro motivo, como timeout, limpeza nas configuracoes do browser, servidor cair, etc.

Use banco de dados e faça o controle por usuário.

Na session você guarda o id do usuário logado e o resto consulta no banco de dados. Exemplo: select * from perfil where id_usuario = :id_usuario

e isso que quero fazer…vai ter banco de dados e tudo…a duvida era se a sessão e o mesmo que perfil…

estou querendo criar um sistema onde varios usuarios possam entrar sem interferir nos dados de outro usuario.

exemplo: Um sistema onde o cliente seria academias. Cada academia teria um login e senha e cada academia poderia ter os alunos que por sua vez teria tambem login e senha, mas nenhuma academia veria os alunos da outra. e os alunos logariam em suas respectivas academias. E meio complexo, mas e assim que queria.

E só filtrar os dados de acordo com o que usuário logado tem permissão. Por exemplo, com uma tabela academia_usuario (id_academia, id_usuario) você vai poder filtrar qualquer registro envolvendo academia, conforme o id do usuário logado e fazer joins com tabelas relacionadas.

Então o filtro é baseado no ID?

Com esse filtro o aluno1 não vera o que o aluno2 esta fazendo?
As informações do aluno1 não apareceram para o aluno2 correto?

Tudo depende da sua programação. Se o aluno logado nao tem acesso a um determinado registro, você nao vai trazer ele do banco, vai filtrar somente os registros que ele tiver acesso.

Pra te ilustrar melhor, supondo que voce tenha uma tela que exiba as atividades que o aluno faz:

$query = $db->prepare('select * from atividade_aluno where id_aluno = :id_aluno');
$query->bindParam(':id_aluno', $_SESSION['id_aluno_logado'], PDO::PARAM_INT);
$query->execute();

Nao tem mistério, basta fazer a modelagem de dados conforme as necessidades e filtrar os registros de acordo com os dados do usuário autenticado no sistema.

entendi javaflex…

antes eu achava que pra isolar os usuario tinha que criar outro banco em outro lugar…mas agora vejo que basta ter um simples ID…kkkkkkkk…

Vou fazer como vc falou…e continuarei perguntando caso tenha duvidas…

valeu man…