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!