JoaoVM Posted May 20, 2013 at 01:42 PM Report #508060 Posted May 20, 2013 at 01:42 PM (edited) Malta alguém me diz o que tenho mal? Ele quando entra como visitante não me passa para a segunda condição, ou seja, quando está com o login feito está tudo bem, mas quando não está, mostra a primeira condição com o Terminar Sessão e só não mostra o nome do user. Cumprimentos $user = $_SESSION['username']; if (session_id() == session_start()) { echo "Olá; $user. Bem vindo ao Programa KpiLinhas"; echo "<br>"; echo '<a href="logout.php">Terminar Sessão</a>'; } else { echo "Olá Desconheido, Bem vindo ao Programa KpiLinhas"; echo "<br>"; echo "O Programa KpiLinhas está reservada a utilizadores com permissão!!!"; echo "<br>"; echo '<a href="login.php">Iniciar Sessã;o</a>'; } Edited May 20, 2013 at 02:36 PM by brunoais geshi
nelsonr Posted May 20, 2013 at 01:46 PM Report #508062 Posted May 20, 2013 at 01:46 PM (edited) O que tens de fazer é quando um utilizador se autentica, guardas na sessão essa informação (ex: $_SESSION['nome_utilizador'] = 'nelsonr'; ) Depois ai nesse sitio, verificas se a variavel de sessão está preenchida (ex: if(isset($_SESSION['nome_utilizador'])) ) Não esquecer de remover a sessão quando o utilizador faz logoff (ex:unset($_SESSION['nome_utilizador']); ) Edited May 20, 2013 at 01:49 PM by nelsonr
pikax Posted May 20, 2013 at 01:48 PM Report #508064 Posted May 20, 2013 at 01:48 PM O session_start() tem que ser usada antes de acederes ao array $_SESSION Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
HappyHippyHippo Posted May 20, 2013 at 01:50 PM Report #508066 Posted May 20, 2013 at 01:50 PM $user = $_SESSION['username']; // <---- não faz sentido usar o $_SESSION antes de session_start() if (session_id() == session_start()) // <--- o teu session_start() session_start(); if (array_key_exists('username', $_SESSION) && $_SESSION['username'] != '') { // está autenticado } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
JoaoVM Posted May 20, 2013 at 01:59 PM Author Report #508069 Posted May 20, 2013 at 01:59 PM (edited) Obrigado a todos, funcionou da forma que disse o HappyHippyHippo, fica aqui a solução: session_start(); $user = $_SESSION['username']; if (array_key_exists('username', $_SESSION) && $_SESSION['username'] != ''){ echo "Olá; $user. Bem vindo ao Programa KpiLinhas"; echo "<br>"; echo '<a href="logout.php">Terminar Sessão</a>'; } else { echo "Olá Desconheido, Bem vindo ao Programa KpiLinhas"; echo "<br>"; echo "O Programa KpiLinhas está reservada a utilizadores com permissão!!!"; echo "<br>"; echo '<a href="login.php">Iniciar Sessã;o</a>'; } Cumprimentos Edited May 20, 2013 at 02:36 PM by brunoais geshi
taviroquai Posted May 21, 2013 at 05:35 PM Report #508257 Posted May 21, 2013 at 05:35 PM (edited) Ainda devolve um notice... o correto é colocar a segunda linha no bloco em que a chave username existe... ou seja logo a seguir ao if Na linha if, costumo usar !empty($_SESSION['username']) Edited May 21, 2013 at 05:39 PM by taviroquai
yoda Posted May 21, 2013 at 07:17 PM Report #508266 Posted May 21, 2013 at 07:17 PM $user = array_key_exists('username', $_SESSION) ? $_SESSION['username'] : false; if ($user && $user != '') { before you post, what have you tried? - http://filipematias.info sense, purpose, direction
JoaoVM Posted May 27, 2013 at 09:51 AM Author Report #509114 Posted May 27, 2013 at 09:51 AM Pessoal obrigado por tudo está a funcionar já desde que me responderam mas esqueci de agradecer. Cumprimentos
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now