Ir para conteúdo
Fórum Script Brasil
  • 0

Session só "ativa" após refresh


carlosmandra

Pergunta

Oi pessoal,

to com uma dúvida em sessions no php que não to conseguindo resolver. Seguinte: tenho uma lista de professores de um colegio, e ao clicar no nome de um deles o aluno é direcionado para o blog do professor. O endereço é blog/index.php?id=alex , por exemplo, onde alex é o apelido e login do professor no sistema.

então, dentro da pasta blog, preciso manter a sessão com essa variável entre as páginas (index, categorias, arquivo, post, etc). Na index, que recebe a primeira varíavel, tá assim:

session_start();
$GLOBALS['idProf'] = $_GET['id'];
session_register("idProf");
até aí tudo bem, porém se o aluno voltar e clicar em outro professor, o problema começa. Teoricamente, dentro dos meus parcos conhecimentos de sessions, eu fiz isso:
if(isset($_GET['id']) && ($_GET['id']!="")){
    if($_GET['id']!= $_SESSION['idProf']){ 
        session_unregister("idProf");
        $GLOBALS['idProf'] = $_GET['id'];
        session_register("idProf");    
    }
    }

ou seja, checa se o ID é válido, e checa se é o mesmo já setado. Se for diferente, apaga e registra a sessão novamente. Isso dá certo, só que quando o aluno clica no nome do professor, o blog abre vazio, e só depois de um refresh é que os dados do respectivo professor aparecem.

Alguém pode me ajudar? onde estou errando?

Abraço!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Oi Renato,

isso, só funciona bem da primeira vez. Se a sessão já estiver aberta no browser, dá pau =\

O problema, tenho quase certeza, é na hora de trocar o valor da sessão que já está aberta, ou seja, ela está com o valor "alex" do primeiro professor, e quando o aluno volta e clica no segundo, exemplo, "paulo", a sessão primeiro fica em branco, e só depois do refresh (a url continua indicando o GET > index.php?id=paulo ) é que ela registra o novo valor novamente.

=\

Link para o comentário
Compartilhar em outros sites

  • 0

Faz o seguinte. Na página da lista de professores, verifique se existe a session. Se existir você usa o comando session_destroy(); Dessa forma o aluno clicará no nome do professor e a session será criada na página em que o login dele é passado por GET. E quando ele voltar essa session será destruída e quando ele clicar em outro professor uma nova sessão será criada com outro professor.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...