Jump to content
Fórum Script Brasil
  • 0

$_SESSION não passa de jeito nenhum


mm_edilson

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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')>";}

?>

 

Edited by Frank K Hosaka
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...