Raiuga Postado Janeiro 31, 2016 Denunciar Share Postado Janeiro 31, 2016 (editado) Olá, Sou uma iniciante na programação. Será que me podem ajudar? A minha $_SESSION não está a passar de uma página para a outra. Página index.php: <html> <head> <title>Login Test</title> </head> <body> <form name="formlogin" method="post" action="userauthentication.php"> E-mail: <input type="text" name="email"><br><br> Senha: <input type="password" name="senha"><br><br> <input type="submit" value="Login"> </form> </body> </html> De seguida vou verificar se os dados inseridos estão correctos. Página userauthentication.php: <?php session_start(); $host = "HOST"; $user = "USER"; $pass = "PASS"; $bd = "BD"; $conn = mysqli_connect($host, $user, $pass, $bd) or die(mysqli_error()); ?> <html> <head> <title>Login Sucesso</title> <script type="text/javascript"> function loginsuccessfully() { setTimeout("window.location='backoffice.php'",1000); } function loginfailed(){ setTimeout("window.location='index.php'",5000); } </script> </head> <body> <?php $email=$_POST['email']; $senha=$_POST['senha']; $sql = mysqli_query($conn, "SELECT * FROM login WHERE email = '$email' and senha = '$senha'") or die(mysqli_error()) ; $row = mysqli_num_rows($sql); if($row > 0){ $SESSION['email']=$email; $SESSION['senha']=$senha; echo "<center>Login feito com sucesso</center>"; echo "<script>loginsuccessfully()</script>"; } else{ echo "<center>E-mail ou senha inválidos!</center>"; echo "<script>loginfailed()</script>"; } ?> </body> </html> O problema está quando chego à página backoffice.php. Está sempre a retornar para a página de login, ou seja, não está a gravar a variável session. Página backoffice.php: <?php session_start(); $email=$_SESSION['email']; $senha=$_SESSION['senha']; $host = "HOST"; $user = "USER"; $pass = "PASS"; $bd = "BD"; $conn = mysqli_connect($host, $user, $pass, $bd) or die(mysqli_error()); ?> <?php if(!isset($email) || !isset($senha)){ header("Location: index.php"); exit; } else{ echo "<center>Já tem login feito</center>"; } ?> <html> <head> <title>Login Sucesso</title> <script type="text/javascript"> function loginsuccessfully() { setTimeout("window.location='backoffice.php'",1000); } function loginfailed(){ setTimeout("window.location='index.php'",5000); } </script> </head> <body> <?php $email=$_POST['email']; $senha=$_POST['senha']; $sql = mysqli_query($conn, "SELECT * FROM login WHERE email = '$email' and senha = '$senha'") or die(mysqli_error()) ; $row = mysqli_num_rows($sql); if($row > 0){ $SESSION['email']=$email; $SESSION['senha']=$senha; echo "<center>Login feito com sucesso</center>"; echo "<script>loginsuccessfully()</script>"; } else{ echo "<center>E-mail ou senha inválidos!</center>"; echo "<script>loginfailed()</script>"; } ?> </body> </html> Alguém me ajude sff, Obrigada! Editado Janeiro 31, 2016 por Raiuga Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lowys Postado Janeiro 31, 2016 Denunciar Share Postado Janeiro 31, 2016 Olá! A variável de servidor $_SESSION, deve ter um underline depois do cifrão. Talvez seja isso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raiuga Postado Fevereiro 1, 2016 Autor Denunciar Share Postado Fevereiro 1, 2016 Obrigada lowys! Um erro tão pequeno =) Ficou resolvido! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Raiuga
Olá,
Sou uma iniciante na programação. Será que me podem ajudar? A minha $_SESSION não está a passar de uma página para a outra.
Página index.php:
De seguida vou verificar se os dados inseridos estão correctos.
Página userauthentication.php:
O problema está quando chego à página backoffice.php. Está sempre a retornar para a página de login, ou seja, não está a gravar a variável session.
Página backoffice.php:
Alguém me ajude sff, Obrigada!
Editado por RaiugaLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.