Fórum ERRO de sessão no PHP #594962
19/06/2018
0
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
Curtir tópico
+ 0
Responder
Post mais votado
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
Alex William
Responder
Gostei + 2
Clique aqui para fazer login e interagir na Comunidade :)