bioshock Posted October 11, 2012 at 06:18 PM Report #478749 Posted October 11, 2012 at 06:18 PM (edited) Viva, Estou aqui com um problema que até pode ser simples mas está-me a comer o caco. main.php session_start(); if (isset($_POST['submit'])) { include('go_login.php'); $log = new login; $log->log_in(); if (isset($_SESSION['message'])) { if ($_SESSION['message'] == 1) { // faz xpto_1 session_destroy(); } elseif ($_SESSION['message'] == 0) { // faz xpto_2 session_destroy(); } } } go_login: public function log_in() { // etc etc session_start(); if ($query->num_rows() == 1) { $_SESSION['message'] = 1; echo "<script type='text/javascript'>window.location='admin.php?logged'</script>"; } else { $_SESSION['message'] = 0; echo "<script type='text/javascript'>window.location='admin.php?notlogged'</script>"; } } O que se passa é que a Session[Message] não me devolve nada, porque ele não atribui à Session nada. Mas, no entanto, ele muda o URL para ?logged ou ?notlogged. Eu precisava que o PHP me interpretasse o fluxo do código, progressivamente, desta maneira: Inicio 1. -> $log = new login; 2. -> $log->log_in(); 3. -> Correr todos os procedimentos da função 4. -> if (isset($_SESSION['message'])) { Alguma ideia? 😕 Edited October 11, 2012 at 07:55 PM by bioshock
pikax Posted October 11, 2012 at 06:25 PM Report #478750 Posted October 11, 2012 at 06:25 PM so precisas de fazer session_start uma vez! porque que metes a mensagem na session??? porque que nao tens um membro na class login com o nome de "mensagens" e depois verificas. Para ver o login basta passares o utilizador e a pass para a class login para validar! 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."
bioshock Posted October 11, 2012 at 06:37 PM Author Report #478753 Posted October 11, 2012 at 06:37 PM so precisas de fazer session_start uma vez! Isso eu já emendei após rever o meu tópico. porque que metes a mensagem na session??? Qual a razão para não o fazer? porque que nao tens um membro na class login com o nome de "mensagens" e depois verificas. Porque gostava de manter as coisas como estão, pois a página de login contém apenas e exclusivamente PHP. Ao invés de que na página main, quando verifico a Session, utilizo JS dentro da condição.
taviroquai Posted October 11, 2012 at 06:46 PM Report #478754 Posted October 11, 2012 at 06:46 PM Viva, Está um pouco confuso o teu código... Partindo do princípio que o flow da aplicação está correto... tens 2 session_destroy, mesmo quando está logado ($_SESSION['message'] == 1) ou quando não está ($_SESSION['message'] == 0)
bioshock Posted October 11, 2012 at 06:53 PM Author Report #478756 Posted October 11, 2012 at 06:53 PM Sim, tens razão, coloquei assim: if (isset($_SESSION['message'])) { if ($_SESSION['message'] == 1) { echo "1"; }else{ echo "0"; } Mas não me aparece mensagem nenhuma.
taviroquai Posted October 11, 2012 at 07:30 PM Report #478763 Posted October 11, 2012 at 07:30 PM Colocar um var_dump($_SESSION) logo a seguir ao 1º session_start() e diz o que aparece. Também comenta o echo do redirect em Javascript, para não fazer o redirect para já.
bioshock Posted October 11, 2012 at 07:52 PM Author Report #478770 Posted October 11, 2012 at 07:52 PM (edited) Inicialmente, é dado o seguinte: Array(0) { } Se falhar o login: Array(1) { ["message"] => int(0) Se acertar o login: Array(1) { ["message"] => int(1) Portanto, está tudo correcto. O problema só está depois no mostrar a informação. Edit: O problema estava no redirect..e isso eu consigo resolver de outra forma. Porque quando o login falha, não há redirect, e quando o login acerta, eu posso mostrar a informação que quero na página para o qual é redireccionado. Obrigado! 👍 Edited October 11, 2012 at 07:55 PM by bioshock
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