JoaoVM Posted July 26, 2013 at 01:22 PM Report #520071 Posted July 26, 2013 at 01:22 PM Boa tarde, Bem, tenho um problema aqui com o meu validar login, deve ser algo pequeno que não estou a conseguir ver, e ponho mais uns tópico aqui para me ajudarem, porque muitas cabeças pensam mais que apenas uma.. Este é o meu valida_login.php, tem uma pagina anterior com um formulário de login, ele inicia a sessão e se for para outra página e ele tem a sessão iniciada, apenas não faz o redirecionamento da página valida_login.php, segue o código: <?php require_once ('init.php'); //CONSULTA DO UTILIZADOR $consulta="select username, passwd, role, rfid from utilizadores where username='" . $_POST['username'] . "' and passwd='" . $_POST['passwd'] . "'"; $resultado=mysql_query($consulta); if (mysql_num_rows($resultado)>0) //SE O UTILIZADOR E A PASSWORD COINCIDIREM { //COLOCA NA VARIAVEL LINHA OS DADOS DA CONSULTA $linha=mysql_fetch_array($resultado); //COLOCA O USERNAME EM SESSAO $_SESSION['username']=$linha['username']; //COLOCA O ROLE EM SESSAO $_SESSION['role']=$linha['role']; //COLOCA O RFID EM SESSAO $_SESSION['rfid']=$linha['rfid']; header("location: index.php"); } else //CASO NAO COINCIDAM { //REDIRECCIONA PARA A PAGINA INICIAL REPORTANDO O ERRO header("location: index.php?erro=1"); } ?> Cumprimento, João Martins
AJBM Posted July 26, 2013 at 01:38 PM Report #520075 Posted July 26, 2013 at 01:38 PM (edited) Boas! Antes do primeiro $_Session usa isto session_start(); Edited July 26, 2013 at 01:39 PM by AJBM
JoaoVM Posted July 26, 2013 at 01:51 PM Author Report #520077 Posted July 26, 2013 at 01:51 PM Não é disso...ja testei..
AJBM Posted July 26, 2013 at 01:55 PM Report #520078 Posted July 26, 2013 at 01:55 PM Tens que usar session_start() em todas as paginas em que usas $_session e tem que ser antes do mesmo. Ve isto http://pplware.sapo.pt/tutoriais/php-quinta-feira-sistema-de-login/. Podes dizer o erro que dá ou o que acontece
JoaoVM Posted July 26, 2013 at 02:07 PM Author Report #520082 Posted July 26, 2013 at 02:07 PM sim eu sei e eu uso, ele inicia a sessão, a ordem seria, login.php(form)->valida_login.php->index.php, o que sucede é que quando passa do login para o valida_login o valida_login nao avança dai, mas se voltar atras ou for para o index.php pela barra de endereços ele tem o login feito...
AJBM Posted July 26, 2013 at 02:16 PM Report #520083 Posted July 26, 2013 at 02:16 PM Pelo que percebi ele entra no primeiro if mas não é redireccionado para o index, não sei se é isto, mas tenta header("Location: index.php"), pode ser case sensitive tem cuidado com o caminho tens a certeza que o caminho esta correcto.
Virneto Posted July 26, 2013 at 02:16 PM Report #520084 Posted July 26, 2013 at 02:16 PM quando passa do login para o valida_login o valida_login nao avança dai, mas se voltar atras ou for para o index.php pela barra de endereços ele tem o login feito... Epá, eu posso estar só a fazer ruído, mas esta tua afirmação não sugere que o problema está no header()?? Experimentaste a alterar aquela instrução? mudar o endereço para absoluto e verificar que não há output antes do header()? "Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Linuxando.com | ...
JoaoVM Posted July 26, 2013 at 02:30 PM Author Report #520085 Posted July 26, 2013 at 02:30 PM Sim Virneto o problema está no header, mas não percebo onde, porque tenho outros headers da mesma forma e funcionam, já experimentei com o caminho completo e só com index.php header("Location: /Applications/MAMP/htdocs/FINAL/FUNC/index.php"); header("Location: index.php"); Também não é por ser case sensitive AJBM. Pessoal decidi optar por outra solução, é a seguinte: $url = 'index.php'; echo "<script language=\"javascript\"> location.href=\"$url\"; </script>";
AJBM Posted July 26, 2013 at 02:30 PM Report #520086 Posted July 26, 2013 at 02:30 PM Tens de colocar o caminho do valida_login ate o index. O valida_login e o index estão na raiz?
JoaoVM Posted July 26, 2013 at 02:34 PM Author Report #520088 Posted July 26, 2013 at 02:34 PM Sim, está tudo na raiz excepto imagens e mais umas cenas poucas, mas já resolvi, de outra forma mas resolvi: $url = 'index.php'; echo "<script language=\"javascript\"> location.href=\"$url\"; </script>";
Virneto Posted July 26, 2013 at 02:55 PM Report #520093 Posted July 26, 2013 at 02:55 PM (edited) Procura por algum output ou espaço em branco após fecho da tag ?> para o header() funcionar corretamente nenhum output pode ser enviado antes do header(). e Repara que output pode ser um echo, print, ou mesmo uma mensagem de erro. Segundo o php.net também podes contornar o output se utilizares ob_start(). Assim muito resumidamente pões nos teus scripts: <?php ob_start(); //o teu código //a tua header(); //blablabla ob_flush(); ?> mas eu não seui se isto é seguro. vê na documentação aqui e em último caso: echo("<script>location.href = 'http://whatever.com/thankyou.php';</script>"); 😄 mas o header() é mais rápido. Edição: Pessoal decidi optar por outra solução, é a seguinte: $url = 'index.php'; echo "<script language=\"javascript\"> location.href=\"$url\"; </script>"; ainda por cima com 11 minutos de diferença...Fair enough!! 😄😛 $working_memory[]='stay updated'=>'hit F5!'; Edited July 26, 2013 at 02:56 PM by Virneto "Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Linuxando.com | ...
JoaoVM Posted July 26, 2013 at 03:19 PM Author Report #520096 Posted July 26, 2013 at 03:19 PM 11 minutos de diferença? é rápido está a funcionar normalmente..opa desde que esteja a funcionar está 😉 Obrigado Virneto e AJBM
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