Solucionado (ver solução)
Solucionado
(ver solução)
11
respostas

Cookie do arquivo login.php não vai para as demais páginas internas

O login é realizado com sucesso, os redirecionamentos funcionam o único problema é que a função setcookie é criada e fica apenas no arquivo login.php, ou seja, eu não consigo trabalhar com o cookie nas páginas internas. O que será que deve estar acontecendo?

11 respostas

Use a função setcookie('Nome do cookie', 'Valor'); para setar um novo cookie e utiliza a função $_COOKIE['Nome do cookie']; para ver o que esta gravado nesse cookie, caso não de certo, poste o código insira seu código aqui para analisarmos, obrigado.

no arquivo login.php

<?php 
include ("conecta.php");
include ("banco-usuario.php");

$usuario = buscaUsuario($conexao, $_POST["email"], $_POST["senha"]);

if($usuario == null) {
    header("Location: ../../index.php?login=0");
}else {
    setcookie("usuario_logado", $usuario["email"]); //(time() + (2 * 3600))
    header("Location: ../../interno/admin.php?login=1");
}
die();

no arquivo admin.php

<?php if(isset($_COOKIE["usuario_logado"])) { ?>
<p class="text-success">Você está logado como echo <?= $_COOKIE["usuario_logado"]; ?>.</p>
<?php } ?>

Ele gera e mostra a variável criada apenas no arquivo login.php mas na página interna admin.php ele não mostra, como se o cookie fosse apagado ou perdido no redirecionamento.

já verificou se o $usuario["email"] esta retornando algum valor?

Apenas via browser, nas ferramentas de desenvolvedor, é que consigo ver o retorno com o email criado. Mas nas páginas ele não mostra.

No else, tire o Header ou apenas comente ele e dê um var_dump($usuario["email"]); e veja o que ele retorna.

Mostra o valor da variável criada:

string 'vandre.paulo@hotmail.com' (length=24)

Na pagina admin.php mude o trecho

echo <?= $_COOKIE["usuario_logado"]; ?>

para:

<?= echo $_COOKIE["usuario_logado"]; ?>

Troquei mas ele dá erro de sintaxe. Troquei por

<?php echo $_COOKIE["usuario_logado"]; ?>

ele aceitou mas continua sem mostrar

Mas ele chega a mostrar a mensagem: "Você está logado como"?

Dando um var_dump nesse cookie na pagina admin.php ele chega a mostrar algo?

Estranho que ele não chega a mostrar nada na tela, nem mesmo a mensagem: "Você está logado como ". O var_dump não exibe nada. Vou refazer todo o processo e criar novas páginas para ver se é algum conflito no meu server local

solução!

Talvez seja o caminho das paginas, tenta deixar tudo no mesmo local, facilita bastante.