[Resolvido] Problema com session
Boas srs.,
estou tendo problemas desde que movi um site que desenvolvi para uma empresa para um servidor linux, e aparentemente o problema esta no uso das session's, no Windows estava funfando sem nenhum problema...
Bom, eu criei um aquivo com as seguintes funções:
<?php
session_start();
function AbreConexao()
{
$host ="localhost";
$user ="usuario";
$pwd ="senha";
$db ="projeto";
$conexao = mysql_connect($host,$user,$pwd);
if(!$conexao)
{
echo "Erro ao conectar ao servidor ".$host."!!";
die;
}
mysql_select_db($db,$conexao);
}
//-----------------------------------------------
function db_DataSet($query)
{
AbreConexao();
$record = mysql_query($query);
return $record;
}
//-----------------------------------------------
function Logar($login,$senha)
{
$query = 'SELECT * FROM sys_usuarios WHERE strLogin="'.$login.'" AND strSenha="'.$senha.'" LIMIT 0,1;';
AbreConexao();
$dados = mysql_fetch_array(mysql_query($query));
if($dados) //Verifica se dados (USUARIO E SENHA) existem na base
{
if($dados['blnInativo'] == true)//Usuario bloqueado no sistema
{
$_SESSION['status'] = 3;
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=frm_login.php'>";
die;
}
else//Usuario logou corretamente
{
$_SESSION['login'] = 1; //Indica que usuario logou corretamente no sistema
$_SESSION['user'] = $dados['intUserId'];
$_SESSION['nome'] = $dados['strNome'];
$_SESSION['email'] = $dados['strEmail'];
return true;
}//Fecha else
}//Fecha if
else
{
$_SESSION['status'] = 4; //Usuario e/ou Senha Incorretos
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=frm_login.php'>";
die;
}
}
function Logout()
{
$_SESSION['login'] = false;
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=../index.php'>";
}
//-----------------------------------------------
function ValidaEntrada()
{
if($_SESSION['login'] != 1)
{
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=../sys/frm_login.php'>";
die;
}
return true;
}
?>
Todas as outras páginas tem "basicamente" esta extrutura:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Usuarios</title>
<?php
include('conexaoDB.php');
ValidaEntrada();
?>
</head>
<body> Blablabla </body></html>
Bom, como da para perceber eu não coloco session_start() nas páginas porque esta função já vem de lambuja quando dou um include no arquivo conexaoDB.php, o problema é que em todas as páginas aparece este erro:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/projeto/system/frm_menumodulo.php:7) in /var/www/projeto/system/conexaoDB.php on line 15
Li alguns alguns topicos relatando problemas parecidos e algum deles (não lembro qual) recomendava colocar o session_start() antes do código html, então eu adicionei o include antes de tudo nas páginas, e realmente o problema desapareceu, porem começou a aparecer outro.:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Quem souber como resolvo isto por favor da um força que já estou quebrando a cabeça a uma semana e nada, vlws
Discussão (6)
Carregando comentários...