Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou um erro quando coloco o session_start() na página onde crio sessions:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/arthnetc/public_html/agenda/Conexao/validaUser.php:1) in /home/arthnetc/public_html/agenda/Conexao/validaUser.php on line 1
A página é essa:
<?php session_start(); ?>
<?php
include_once("conexaoPDO.php");
if (isset($_POST['acao']) && $_POST['acao'] == 'autenticaUser'){
$login = $_POST['usuario'];
$usuarioSenha = $_POST['senha'];
$select = "SELECT * FROM usuario WHERE usuarioLogin = :usuarioLogin AND usuarioSenha = :usuarioSenha";
try{
$query = $conecta->prepare($select);
$query->bindValue(':usuarioLogin',$login,PDO::PARAM_STR);
$query->bindValue(':usuarioSenha',$usuarioSenha,PDO::PARAM_STR);
$query->execute();
$registro = $query->rowCount();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $erro){
echo "Erro na seleção, favor informa ao administrador do sistema ".$erro->getMessage();
}
if ($registro <= 0){
echo "Usuário ou senha não cadastrados.";
} else {
foreach($result as $rs){
$usuarioID = $rs['usuarioID'];
$usuarioNome = $rs['usuarioNome'];
$usuarioLogin = $rs['usuarioLogin'];
$usuarioSenha = $rs['usuarioSenha'];
$usuarioTipo = $rs['usuarioTipo'];
$usuarioUnidadeID = $rs['usuarioUnidadeID'];
$usuarioSituacao = $rs['usuarioSituacao'];
$usuarioCep = $rs['usuarioCep'];
$usuarioEndereco = $rs['usuarioEndereco'];
$usuarioNumero = $rs['usuarioNumero'];
$usuarioBairro = $rs['usuarioBairro'];
$usuarioCidade = $rs['usuarioCidade'];
$usuarioTelefone = $rs['usuarioTelefone'];
$usuarioCelular = $rs['usuarioCelular'];
$usuarioEmail = $rs['usuarioEmail'];
}
$_SESSION['usuario']['usuarioID'] = $usuarioID;
$_SESSION['usuario']['usuarioNome'] = $usuarioNome;
$_SESSION['usuario']['usuarioLogin'] = $usuarioLogin;
$_SESSION['usuario']['usuarioTipo'] = $usuarioTipo;
$_SESSION['usuario']['usuarioUnidadeID'] = $usuarioUnidadeID;
$_SESSION['logado'] = "OK";
if (($_SESSION['usuario']['usuarioTipo']) == 'A'){
echo "<meta HTTP-EQUIV='refresh' CONTENT='0;URL=http:index-admin.php'>";
} else {
echo "OPPSS..: EM CONSTRUÇÃO";
}
} // } else {
} // if (isset($_POST['acao']) && $_POST['acao'] == 'autenticaUser'){
?>tenta assim
<?php
session_start();
include_once("conexaoPDO.php");
if (isset($_POST['acao']) && $_POST['acao'] == 'autenticaUser'){
$login = $_POST['usuario'];
$usuarioSenha = $_POST['senha'];
$select = "SELECT * FROM usuario WHERE usuarioLogin = :usuarioLogin AND usuarioSenha = :usuarioSenha";
try{
$query = $conecta->prepare($select);
$query->bindValue(':usuarioLogin',$login,PDO::PARAM_STR);
$query->bindValue(':usuarioSenha',$usuarioSenha,PDO::PARAM_STR);
$query->execute();
$registro = $query->rowCount();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $erro){
echo "Erro na seleção, favor informa ao administrador do sistema ".$erro->getMessage();
}
if ($registro <= 0){
echo "Usuário ou senha não cadastrados.";
} else {
foreach($result as $rs){
$usuarioID = $rs['usuarioID'];
$usuarioNome = $rs['usuarioNome'];
$usuarioLogin = $rs['usuarioLogin'];
$usuarioSenha = $rs['usuarioSenha'];
$usuarioTipo = $rs['usuarioTipo'];
$usuarioUnidadeID = $rs['usuarioUnidadeID'];
$usuarioSituacao = $rs['usuarioSituacao'];
$usuarioCep = $rs['usuarioCep'];
$usuarioEndereco = $rs['usuarioEndereco'];
$usuarioNumero = $rs['usuarioNumero'];
$usuarioBairro = $rs['usuarioBairro'];
$usuarioCidade = $rs['usuarioCidade'];
$usuarioTelefone = $rs['usuarioTelefone'];
$usuarioCelular = $rs['usuarioCelular'];
$usuarioEmail = $rs['usuarioEmail'];
}
$_SESSION['usuario']['usuarioID'] = $usuarioID;
$_SESSION['usuario']['usuarioNome'] = $usuarioNome;
$_SESSION['usuario']['usuarioLogin'] = $usuarioLogin;
$_SESSION['usuario']['usuarioTipo'] = $usuarioTipo;
$_SESSION['usuario']['usuarioUnidadeID'] = $usuarioUnidadeID;
$_SESSION['logado'] = "OK";
if (($_SESSION['usuario']['usuarioTipo']) == 'A'){
echo "<meta HTTP-EQUIV='refresh' CONTENT='0;URL=http:index-admin.php'>";
} else {
echo "OPPSS..: EM CONSTRUÇÃO";
}
} // } else {
} // if (isset($_POST['acao']) && $_POST['acao'] == 'autenticaUser'){
?>
se o erro pesistir bote ob_start(); em cima de session_start();>
Este arquivo está sendo chamado em alguma parte ?
O erro ocorre porque alguma informação já foi enviado para a página e isso pode ser um espaço, um Enter...
<?php
session_start();
include_once("conexaoPDO.php");
....
?>
Tente mudar para como está acima e veja se da certo. Qualquer coisa você pode usar também o ob_start(), mas tente sem ele...
Não deu certo..
E antes mesmo de postar eu já tinha usado o ob_start(), rsrs, e não deu certo.
Tentei agora com ele e nada.
Tenta aí!
if(!isset($_SESSION)){
session_start();
}>
Tenta aí!
if(!isset($_SESSION)){
session_start();
}
Resolveu nada...
Este arquivo está sendo chamado em alguma parte ?
Você ainda não respondeu...
Só vejo este problema, você pode estar chamando esta página, por include, muma outra onde já foram definidos os headers/cabeçalhos. Tipo:
<!DOCTYPE html>
<HTML>
<HEAD>
<title>...</title>
<base href="...">
<!-- METAS -->
<meta charset="ISO-8859-1">
<meta name="keywords" content="">
<meta name="description" content="">
<meta name="robots" content="noindex,nofollow">
<meta name="rating" content="general">
</HEAD>
<BODY class="Body Texto" id="Interno">
<?php include 'pagina.php'; ?>
</BODY>
</HTML>
Isto vai dar erro...
>
Você ainda não respondeu...
Só vejo este problema, você pode estar chamando esta página, por include, muma outra onde já foram definidos os headers/cabeçalhos. Tipo:
<!DOCTYPE html>
<HTML>
<HEAD>
<title>...</title>
<base href="...">
<!-- METAS -->
<meta charset="ISO-8859-1">
<meta name="keywords" content="">
<meta name="description" content="">
<meta name="robots" content="noindex,nofollow">
<meta name="rating" content="general">
</HEAD>
<BODY class="Body Texto" id="Interno">
<?php include 'pagina.php'; ?>
</BODY>
</HTML>
Isto vai dar erro...
Não eu não estou colocando nenhum include, mas o problema você´s já tinha respondido e eu por estar fazendo várias coisas ao mesmo tempo não tinha visto a resposta.
Sim, antes da session_start() tinha uma linha em com caracteres estranhos, ou seja eu não tinha mudado o encode dele para utf8 sem BOM.
Vlw pessoal, todos os outros arquivos onde uso a session eu atentei para isso, mas exatamente esse eu me passei.
MUITO OBRIGADO A TODOS PELA ATENÇÃO.
DESCUPEM A MINHA FALTA DE ATENÇÃO.
Quem bom que resolveu. xD
Este arquivo está sendo chamado em alguma parte ?
O erro ocorre porque alguma informação já foi enviado para a página e isso pode ser um espaço, um Enter...
Tente mudar para como está acima e veja se da certo. Qualquer coisa você pode usar também o ob_start(), mas tente sem ele...