Ora viva, como sou novato aqui vim pedir ajuda.
Já agora se me souberem dizer de bons foruns de PHP em Pt agradecia.
Ora estou a tentar fazer o meu 1º site com login/logout, sessões... e deparei-me com a seguinte situação.
Tenho uma pagina inicial que tem um formulario para user e pass e botão para Entrar ou Sair dependendo se está logado ou não.
Isto é: se não está logado aparece o botão Entrar e se já está logado aparece o botão Sair, recorri a uns IF's e ao estado das
variaveis de sessão.
No botão 'Sair' estou a usar o seguinte codigo:
<form action="logout.php" method="post" ><input type="submit" value="Sair" /></form>
que chama a pagina logout.php que está assim:
<?php
include 'core/init.php';
session_start();
$_SESSION = array();
session_destroy();
session_unset('NOME');
if (empty($_SESSION['NOME'])) {
header("Location: index.php");
exit(); }
?>
Portanto termina a sessão e devolve o curso do programa à pagina inicial(index.php).
O problema surge quando já estou logado e carrego no botão Sair, que deveria então desaparecer sendo substituído pelo botão 'Entrar'
tal como outros menus, que estão na pagina inicial que dependem do estado da sessão.
Ou seja o botão Sair não tem qualquer efeito, mesmo se fizer refresh à pagina incial nada acontece.
Entretanto depois de muito "escavar" deu-me para substituir toda linha de código que tenho acima referente ao form por:
<a href="logout.php" >Sair</a>
e tudo corre na perfeição, ou seja 'Sair' desaparece e é substiuido por 'Entrar' e os menus dependentes de variveis de sessão são substituidos de acordo com o esperado.
Alguem sabe então a que se deve este comportamento diferente entre usar o '<a href=... ' ou o '<form action=...'
desde já o meu obrigado
Já agora se me souberem dizer de bons foruns de PHP em Pt agradecia.
Ora estou a tentar fazer o meu 1º site com login/logout, sessões... e deparei-me com a seguinte situação.
Tenho uma pagina inicial que tem um formulario para user e pass e botão para Entrar ou Sair dependendo se está logado ou não.
Isto é: se não está logado aparece o botão Entrar e se já está logado aparece o botão Sair, recorri a uns IF's e ao estado das
variaveis de sessão.
No botão 'Sair' estou a usar o seguinte codigo:
<form action="logout.php" method="post" ><input type="submit" value="Sair" /></form>
que chama a pagina logout.php que está assim:
<?php
include 'core/init.php';
session_start();
$_SESSION = array();
session_destroy();
session_unset('NOME');
if (empty($_SESSION['NOME'])) {
header("Location: index.php");
exit(); }
?>
Portanto termina a sessão e devolve o curso do programa à pagina inicial(index.php).
O problema surge quando já estou logado e carrego no botão Sair, que deveria então desaparecer sendo substituído pelo botão 'Entrar'
tal como outros menus, que estão na pagina inicial que dependem do estado da sessão.
Ou seja o botão Sair não tem qualquer efeito, mesmo se fizer refresh à pagina incial nada acontece.
Entretanto depois de muito "escavar" deu-me para substituir toda linha de código que tenho acima referente ao form por:
<a href="logout.php" >Sair</a>
e tudo corre na perfeição, ou seja 'Sair' desaparece e é substiuido por 'Entrar' e os menus dependentes de variveis de sessão são substituidos de acordo com o esperado.
Alguem sabe então a que se deve este comportamento diferente entre usar o '<a href=... ' ou o '<form action=...'
desde já o meu obrigado