Ir para conteúdo
Fórum Script Brasil
  • 0

$_SESSION não passa de jeito nenhum


mm_edilson

Pergunta

Amigos, meu login funciona, lê o banco de dados, confere, gera a session, mas quando direciona para a página "painel" que é a página do usuário logado, o session não vem junto. A página não lê.

Já fiz de tudo, tudo enquanto é teste, e nada. Estou usando o wampserver e fazendo tudo no computador local.

O php da página login:

 

<?php

session_start();
require_once 'connect.php';

$message = '';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $email = $_POST['email'];
    $password = $_POST['senha'];

    // Verificar se o e-mail já está cadastrado
    $query = "SELECT * FROM usuarios WHERE email = ?";
    $stmt = $pdo->prepare($query);
    $stmt->execute([$email]);
    $user = $stmt->fetch();

    if ($user && password_verify($password, $user['senha'])) {
        // Login bem sucedido
        $_SESSION['user_id'] = $user['id'];
        $_SESSION['user_name'] = $user['nome'];
        $_SESSION['access_level'] = $user['acesso_nivel'];
		
        header('Location: painel.php');
        exit();
    } else {
        $message = 'Erro! E-mail ou senha inválidos.';
    }
}

?>

 

E o php da página painel (está com trecho comentado devido aos testes)

<?php
session_start();

require_once 'connect.php';

echo $_SESSION['user_id'], $_SESSION['user_name'], $_SESSION['access_level'];

/*if(isset($_SESSION['user_name'], $_SESSION['access_level']) && !empty($_SESSION['user_name']) && !empty($_SESSION['access_level'])){
	$nomeUsuario = $_SESSION['user_name'];
	$nivelAcesso = $_SESSION['access_level'];
} else {
	// redirecionar para página de login
	header('Location: login.php');
	exit();
}*/

?>

 

Alguém pode dar uma força?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Eu fiz o teste por aqui, e eu não consegui passar pelo password_verify. Depois de muito apanhar eu vi que o tamanho do campo senha na tabela usuarios estava assim var(50), quando o correto é var(255). Eu ajuntei os seus códigos e eu fiz apenas um só com o nome de index.php:

<form method=post>
  <input name=email placeholder=email value="frankhosaka@gmail.com">
  <input name=senha placeholder=senha value="1234">
  <input type=submit>
</form>
<?php
session_start();
$pdo=new PDO("mysql:host=localhost;dbname=astudy","root","");
//$email='frankhosaka@gmail.com';
//$hash=password_hash('1234',PASSWORD_DEFAULT);
//$stmt=$pdo->prepare("insert into usuarios (email,senha) values (?,?)");
//$stmt->execute([$email,$hash]);exit;
$message = '';
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    $email = $_POST['email'];
    $password = $_POST['senha'];
    try {
      $query = "SELECT * FROM usuarios WHERE email = ?";
      $stmt = $pdo->prepare($query);
      $stmt->execute([$email]);
      $user = $stmt->fetch();}
    catch (Exception $e){
      echo $e->getMessage(),'\n'; }
    if ($user && password_verify($password, $user['senha'])) {
        $_SESSION['user_id'] = $user['id'];
        $_SESSION['user_name'] = $user['nome'];
        $_SESSION['access_level'] = $user['acesso_nivel'];
        echo "<form><input type=submit name=testar value=testar onclick=submit()></form>";
    } else {
        $message = 'Erro! E-mail ou senha inválidos.';}}
if(isset($_GET['testar'])){
  echo "id: ".$_SESSION['user_id']."<br>";
  echo "user_name: ".$_SESSION['user_name']."<br>";
  echo "access_level: ".$_SESSION['access_level']."<br>";
  echo "<input type=submit value='Novo Teste' onclick=location.replace('index.php')>";}

?>

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652,1k
×
×
  • Criar Novo...