refamelli 0 Denunciar post Postado Agosto 16, 2016 Boa noite a todos! estou com um problema que é o seguinte, tenho um formulário que passa um ID que precisa gravar em uma Session session_start(); $id = $_POST["id"]; $_SESSION["id"] = $id ; Porém a página que captura esse ID só pode ser mostrada para quem está logado. Entao faço a verificação, se não está logado redireciona para a página de login. Até aí ok, a pessoa faz o login e volta para a página de restrita, certo? Porém o ID acima, não grava quando passo por esse processo. O que estou fazendo errado? No arquivo coloquei antes de fazer a verificação, mas mesmo assim não guarda: <?php session_start(); $id= $_POST["id"]; $_SESSION["id"] = $id; include_once 'verifica-login.php'; Se alguém puder me ajudar, agradeço. Super obrigada! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 17, 2016 Bem-vindo ao fórum! :)Recomendo que leia as regras e orientações de participação Você está usando session_start() em todos os scripts que usam sessão? Faça debug. Dê echo nas variáveis e acompanhe os valores delas para verificar se estão sendo enviadas ou vai valor vazio Compartilhar este post Link para o post Compartilhar em outros sites
refamelli 0 Denunciar post Postado Agosto 17, 2016 Obrigada Beraldo! estou usando sim o session_start(), e assim: retorna o ID quando não coloco arquivo de verificação_login, e não retorna nada quando incluo o arquivo de verificação_login... arquivo area_restrita session_start(); $id = $_POST["id"]; $_SESSION["id"] = $id ; include_once 'verifica-login.php'; arquivo verificao_login <?php session_start(); // Inicia a sessão PHP session_cache_expire(10); $httponly = true; session_name(md5('seg'.$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'])); if(!isset($usuario_id)): header("Location: login.php"); endif; o arquivo de verificao redireciona para fazer o login, aí eu faço o login e ele volta pra página area_restrita sem o ID que preciso... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 17, 2016 Tome cuidado com session_start(). Essa função só pode ser chamada uma vez por requisição. Se você der include em um arquivo que também chama session_start(), um erro é gerado. Habilite todas as exibições de erro, como mostrado neste tópico, na Orientação No. 3 e teste novamente. A sessão só pode ser iniciada uma vez, antes de qualquer saída ao navegador Veja este meu tutorial completo sobre Sessões: http://blog.ultimatephp.com.br/como-usar-sessoes-php/ Compartilhar este post Link para o post Compartilhar em outros sites
refamelli 0 Denunciar post Postado Agosto 17, 2016 Legal! valeu pela dica. está dando realmente o erro Undefined index: ID já alterei o código deixando apenas uma session_start(). mas dá o mesmo erro, quando redireciona para a página de login, e volta para a área restrita., .. O que estou esquecendo? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 17, 2016 Esse erro não é da session. Ele diz que o índice 'id' não existe no arrayMais detalhes: http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/#undef_index Compartilhar este post Link para o post Compartilhar em outros sites
refamelli 0 Denunciar post Postado Agosto 17, 2016 Certo, o erro está realmente aqui: $id= $_POST['id']; $_SESSION["id"] = $id; tenho o formulário que seleciona um dos ids atraves de um radiobutton que passa esse valor. E funciona, quando não preciso que essa página seja restrita entende? o que eu não consegui entender, é como fazer quando verifico se o usuario está logado. Porque aí ele redireciona para fazer o login e quando volta pra área restrita, vem se o valor do ID, dando esse erro que não existe... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 17, 2016 Você tem que guardar esse valor na session antes do redirecionamento, então. Compartilhar este post Link para o post Compartilhar em outros sites