ERRO de sessão no PHP
Olá, desenvolvi um sistema web que esta rodando normal no xamp, quando fui subir ele na internet começou a dar erro na hora de logar no sistema, eu faço o login e aparece os seguintes erros:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/timer057/public_html/system/chamado/bd/conexao.php:15) in /home/timer057/public_html/system/chamado/logar.php on line 21
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/timer057/public_html/system/chamado/bd/conexao.php:15) in /home/timer057/public_html/system/chamado/logar.php on line 21
Warning: Cannot modify header information - headers already sent by (output started at /home/timer057/public_html/system/chamado/bd/conexao.php:15) in /home/timer057/public_html/system/chamado/logar.php on line 30
Alguém pode me ajudar? não sei oque é esse erro
segue os código de logar e conexão:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/timer057/public_html/system/chamado/bd/conexao.php:15) in /home/timer057/public_html/system/chamado/logar.php on line 21
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/timer057/public_html/system/chamado/bd/conexao.php:15) in /home/timer057/public_html/system/chamado/logar.php on line 21
Warning: Cannot modify header information - headers already sent by (output started at /home/timer057/public_html/system/chamado/bd/conexao.php:15) in /home/timer057/public_html/system/chamado/logar.php on line 30
Alguém pode me ajudar? não sei oque é esse erro
segue os código de logar e conexão:
<?php // Conexao com o banco include ("bd/conexao.php"); $pdo=conectar(); // Login $usuario = $_POST['usuario']; $senha = $_POST['senha']; // PDO $sql = "SELECT * FROM usuario WHERE usuario=? AND senha=?"; $stm = $pdo->prepare($sql); $stm->bindValue(1, $usuario); $stm->bindValue(2, $senha); $stm->execute(); if ($stm->rowCount() >= 1){ // Salva os dados do usuario na var resultado $resultado = $stm->fetchAll(PDO::FETCH_OBJ); // Se a sessão não existir, inicia uma if (!isset($_SESSION)) session_start(); // Salva os dados encontrados na sessão $_SESSION['idUsuario'] = $resultado[0]->idUsuario; $_SESSION['nomeUsuario'] = $resultado[0]->nome; $_SESSION['tipoUsuario'] = $resultado[0]->tipo_usuario_idTipoUsuario; // Redireciona o usuario para a pagina correta dependendo do nivel de acesso if ($_SESSION['tipoUsuario'] == 1) { header("Location: admin/admin-home.php"); exit; } elseif ($_SESSION['tipoUsuario'] == 2) { header("Location: user_ti/user_ti-home.php"); exit; } else { header("Location: user/user-home.php"); exit; } } else{ echo "<script>alert('Usuario ou senha não correspondem.')</script>"; echo "<script>window.location = 'index.php';</script>"; } ?>
<?php function conectar(){ try { $pdo = new PDO('mysql:host=localhost;dbname=XXXXX', 'XXXX', 'XXXX'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } // fecha try catch(PDOException $e){ echo 'ERRO: ' . $e->getMessage(); } return $pdo; } ?>
Matheus Felipe
Curtidas 0
Melhor post
Alex William
20/06/2018
A sessão é a primeira coisa que tu tem que abrir na pagina. Antes do include da conexao tu abre a sessao, nao precisa verificar se ela existe, só nomeia ela e starta:
e ai remove essa linha:
porque essa pagina só serve pra logar, tu vai chamar ela uma vez por sessão, entao não precisa testar se ela ta setada, estancia ela e starta direto.
espero ter ajudado. :D
<?php session_name('teste'); session_start(); // Conexao com o banco include ("bd/conexao.php"); $pdo=conectar();
e ai remove essa linha:
if (!isset($_SESSION)) session_start();
porque essa pagina só serve pra logar, tu vai chamar ela uma vez por sessão, entao não precisa testar se ela ta setada, estancia ela e starta direto.
espero ter ajudado. :D
GOSTEI 2