Erro no "include"
Tô tentando construir uma página que chama o conteúdo de um php pela propriedade "include" numa determinada área da página. só que tá dando uma mensagem de erro assim:
"Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\gopi\intr\content.php:59) in C:\xampp\htdocs\gopi\intr\connect.php on line 48"
Se eu executo os arquivos separadamente, não dá erro nenhum.
O connect à patir da linha 48 está assim:
session_start();
}
function validaUsuario($usuario, $senha) {
global $_SG;
$cS = ($_SG['caseSensitive']) ? 'BINARY' : '';
$nusuario = addslashes($usuario);
$nsenha = addslashes($senha);
// Monta uma consulta SQL (query) para procurar um usuário
$sql = "SELECT `usu`.`usuario`, `usu`.`nome`, `usu`.`senha`, `usu`.`nivel`, `funcs`.`funcao` FROM `funcs` INNER JOIN `usu` ON `funcs`.`id_funcao` = `usu`.`fnc` WHERE ".$cS." `usuario` = '".$nusuario."' AND ".$cS." `senha` = '".$nsenha."' LIMIT 1";
$query = mysql_query($sql);
$resultado = mysql_fetch_array($query);
// Verifica se encontrou algum registro
if (empty($resultado)) {
// Nenhum registro foi encontrado => o usuário é inválido
return false;
} else {
// O registro foi encontrado => o usuário é valido
// Definimos dois valores na sessão com os dados do usuário
$_SESSION['usuario'] = $resultado['usuario']; // Pega o valor da coluna 'id do registro encontrado no MySQL
// Verifica a opção se sempre validar o login
if ($_SG['validaSempre'] == true) {
}
return true;
}
}
"Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\gopi\intr\content.php:59) in C:\xampp\htdocs\gopi\intr\connect.php on line 48"
Se eu executo os arquivos separadamente, não dá erro nenhum.
O connect à patir da linha 48 está assim:
session_start();
}
function validaUsuario($usuario, $senha) {
global $_SG;
$cS = ($_SG['caseSensitive']) ? 'BINARY' : '';
$nusuario = addslashes($usuario);
$nsenha = addslashes($senha);
// Monta uma consulta SQL (query) para procurar um usuário
$sql = "SELECT `usu`.`usuario`, `usu`.`nome`, `usu`.`senha`, `usu`.`nivel`, `funcs`.`funcao` FROM `funcs` INNER JOIN `usu` ON `funcs`.`id_funcao` = `usu`.`fnc` WHERE ".$cS." `usuario` = '".$nusuario."' AND ".$cS." `senha` = '".$nsenha."' LIMIT 1";
$query = mysql_query($sql);
$resultado = mysql_fetch_array($query);
// Verifica se encontrou algum registro
if (empty($resultado)) {
// Nenhum registro foi encontrado => o usuário é inválido
return false;
} else {
// O registro foi encontrado => o usuário é valido
// Definimos dois valores na sessão com os dados do usuário
$_SESSION['usuario'] = $resultado['usuario']; // Pega o valor da coluna 'id do registro encontrado no MySQL
// Verifica a opção se sempre validar o login
if ($_SG['validaSempre'] == true) {
}
return true;
}
}
comentários (0)
suspender
Lista de Respostas:
30/06/2010 2:35pm
(~14 anos atrás)
(~14 anos atrás)
Básico em sessões no PHP.
Você não pode ter saída de dados antes de executar instruções que alterem os cabeçalhos HTTP como session_start(), session_name() e header por exemplo.
Se a sessão já houver iniciado tente usar
no lugar de apenas
Você não pode ter saída de dados antes de executar instruções que alterem os cabeçalhos HTTP como session_start(), session_name() e header por exemplo.
Se a sessão já houver iniciado tente usar
if(session_id()=="") session_start();
no lugar de apenas
session_start();
30/06/2010 8:29pm
(~14 anos atrás)
(~14 anos atrás)
Marcos, entendi a sua explicação, mas não sei exatamente aonde está havendo saída de dados. Já procurei mas não achei. Meu connect completo está assim:
<?php
$nome_site = "Intranet - Gopinatha Services"; //Nome do site
$email = "webmaster@gopinatha.com.br"; //E-mail do administrador
$site = "http://www.gopinatha.com.br/intr/"; //Seu site n se esuqece de bota o http://
// Configurações do Script
// ==============================
$_SG['conectaServidor'] = true; // Abre uma conexão com o servidor MySQL?
$_SG['abreSessao'] = true; // Inicia a sessão com um session_start()?
$_SG['caseSensitive'] = false; // Usar case-sensitive? Onde 'thiago' é diferente de 'THIAGO'
$_SG['validaSempre'] = true; // Deseja validar o usuário e a senha a cada carregamento de página?
// Evita que, ao mudar os dados do usuário no banco de dado o mesmo contiue logado.
$_SG['servidor'] = 'localhost'; // Servidor MySQL
$_SG['usuario'] = 'root'; // Usuário MySQL
$_SG['senha'] = 'pimpao'; // Senha MySQL
$_SG['banco'] = 'intranet'; // Banco de dados MySQL
$_SG['paginaLogin'] = 'http://www.gopinatha.com.br/intr/index.html'; // Página de login
$_SG['tabela'] = 'usu'; // Nome da tabela onde os usuários são salvos
// ==============================
// ======================================
// ~ Não edite a partir deste ponto ~
// ======================================
// Verifica se precisa fazer a conexão com o MySQL
if ($_SG['conectaServidor'] == true) {
$_SG['link'] = mysql_connect($_SG['servidor'], $_SG['usuario'], $_SG['senha']) or die("MySQL: Não foi possível conectar-se ao servidor [".$_SG['servidor']."].");
mysql_select_db($_SG['banco'], $_SG['link']) or die("MySQL: Não foi possível conectar-se ao banco de dados [".$_SG['banco']."].");
}
// Verifica se precisa iniciar a sessão
if ($_SG['abreSessao'] == true) {
if(session_id()=="") session_start();
}
/**
* Função que valida um usuário e senha
*
* @param string $usuario - O usuário a ser validado
* @param string $senha - A senha a ser validada
*
* @return bool - Se o usuário foi validado ou não (true/false)
*/
function validaUsuario($usuario, $senha) {
global $_SG;
$cS = ($_SG['caseSensitive']) ? 'BINARY' : '';
// Usa a função addslashes para escapar as aspas
$nusuario = addslashes($usuario);
$nsenha = addslashes($senha);
// Monta uma consulta SQL (query) para procurar um usuário
$sql = "SELECT `usu`.`usuario`, `usu`.`nome`, `usu`.`senha`, `usu`.`nivel`, `funcs`.`funcao` FROM `funcs` INNER JOIN `usu` ON `funcs`.`id_funcao` = `usu`.`fnc` WHERE ".$cS." `usuario` = '".$nusuario."' AND ".$cS." `senha` = '".$nsenha."' LIMIT 1";
$query = mysql_query($sql);
$resultado = mysql_fetch_array($query);
// Verifica se encontrou algum registro
if (empty($resultado)) {
// Nenhum registro foi encontrado => o usuário é inválido
return false;
} else {
// O registro foi encontrado => o usuário é valido
// Definimos dois valores na sessão com os dados do usuário
$_SESSION['usuario'] = $resultado['usuario']; // Pega o valor da coluna 'id do registro encontrado no MySQL
$_SESSION['cpf'] = $resultado['cpf']; // Pega o valor da coluna 'nome' do registro encontrado no MySQL
// Verifica a opção se sempre validar o login
if ($_SG['validaSempre'] == true) {
}
return true;
}
}
/**
* Função que protege uma página
*/
function protegePagina() {
global $_SG;
if (!isset($_SESSION['usuario']) OR !isset($_SESSION['cpf'])) {
// Não há usuário logado, manda pra página de login
expulsaVisitante();
} else if (!isset($_SESSION['usuario']) OR !isset($_SESSION['cpf'])) {
// Há usuário logado, verifica se precisa validar o login novamente
if ($_SG['validaSempre'] == true) {
// Verifica se os dados salvos na sessão batem com os dados do banco de dados
if (!validaUsuario($_SESSION['usuario'], $_SESSION['cpf'])) {
// Os dados não batem, manda pra tela de login
expulsaVisitante();
}
}
}
}
/**
* Função para expulsar um visitante
*/
function expulsaVisitante() {
global $_SG;
// Remove as variáveis da sessão (caso elas existam)
unset($_SESSION['usuarioNome'], $_SESSION['usuarioLogin'], $_SESSION['usuarioSenha']);
// Manda pra tela de login
header("Location: ".$_SG['paginaLogin']);
}
<?php
$nome_site = "Intranet - Gopinatha Services"; //Nome do site
$email = "webmaster@gopinatha.com.br"; //E-mail do administrador
$site = "http://www.gopinatha.com.br/intr/"; //Seu site n se esuqece de bota o http://
// Configurações do Script
// ==============================
$_SG['conectaServidor'] = true; // Abre uma conexão com o servidor MySQL?
$_SG['abreSessao'] = true; // Inicia a sessão com um session_start()?
$_SG['caseSensitive'] = false; // Usar case-sensitive? Onde 'thiago' é diferente de 'THIAGO'
$_SG['validaSempre'] = true; // Deseja validar o usuário e a senha a cada carregamento de página?
// Evita que, ao mudar os dados do usuário no banco de dado o mesmo contiue logado.
$_SG['servidor'] = 'localhost'; // Servidor MySQL
$_SG['usuario'] = 'root'; // Usuário MySQL
$_SG['senha'] = 'pimpao'; // Senha MySQL
$_SG['banco'] = 'intranet'; // Banco de dados MySQL
$_SG['paginaLogin'] = 'http://www.gopinatha.com.br/intr/index.html'; // Página de login
$_SG['tabela'] = 'usu'; // Nome da tabela onde os usuários são salvos
// ==============================
// ======================================
// ~ Não edite a partir deste ponto ~
// ======================================
// Verifica se precisa fazer a conexão com o MySQL
if ($_SG['conectaServidor'] == true) {
$_SG['link'] = mysql_connect($_SG['servidor'], $_SG['usuario'], $_SG['senha']) or die("MySQL: Não foi possível conectar-se ao servidor [".$_SG['servidor']."].");
mysql_select_db($_SG['banco'], $_SG['link']) or die("MySQL: Não foi possível conectar-se ao banco de dados [".$_SG['banco']."].");
}
// Verifica se precisa iniciar a sessão
if ($_SG['abreSessao'] == true) {
if(session_id()=="") session_start();
}
/**
* Função que valida um usuário e senha
*
* @param string $usuario - O usuário a ser validado
* @param string $senha - A senha a ser validada
*
* @return bool - Se o usuário foi validado ou não (true/false)
*/
function validaUsuario($usuario, $senha) {
global $_SG;
$cS = ($_SG['caseSensitive']) ? 'BINARY' : '';
// Usa a função addslashes para escapar as aspas
$nusuario = addslashes($usuario);
$nsenha = addslashes($senha);
// Monta uma consulta SQL (query) para procurar um usuário
$sql = "SELECT `usu`.`usuario`, `usu`.`nome`, `usu`.`senha`, `usu`.`nivel`, `funcs`.`funcao` FROM `funcs` INNER JOIN `usu` ON `funcs`.`id_funcao` = `usu`.`fnc` WHERE ".$cS." `usuario` = '".$nusuario."' AND ".$cS." `senha` = '".$nsenha."' LIMIT 1";
$query = mysql_query($sql);
$resultado = mysql_fetch_array($query);
// Verifica se encontrou algum registro
if (empty($resultado)) {
// Nenhum registro foi encontrado => o usuário é inválido
return false;
} else {
// O registro foi encontrado => o usuário é valido
// Definimos dois valores na sessão com os dados do usuário
$_SESSION['usuario'] = $resultado['usuario']; // Pega o valor da coluna 'id do registro encontrado no MySQL
$_SESSION['cpf'] = $resultado['cpf']; // Pega o valor da coluna 'nome' do registro encontrado no MySQL
// Verifica a opção se sempre validar o login
if ($_SG['validaSempre'] == true) {
}
return true;
}
}
/**
* Função que protege uma página
*/
function protegePagina() {
global $_SG;
if (!isset($_SESSION['usuario']) OR !isset($_SESSION['cpf'])) {
// Não há usuário logado, manda pra página de login
expulsaVisitante();
} else if (!isset($_SESSION['usuario']) OR !isset($_SESSION['cpf'])) {
// Há usuário logado, verifica se precisa validar o login novamente
if ($_SG['validaSempre'] == true) {
// Verifica se os dados salvos na sessão batem com os dados do banco de dados
if (!validaUsuario($_SESSION['usuario'], $_SESSION['cpf'])) {
// Os dados não batem, manda pra tela de login
expulsaVisitante();
}
}
}
}
/**
* Função para expulsar um visitante
*/
function expulsaVisitante() {
global $_SG;
// Remove as variáveis da sessão (caso elas existam)
unset($_SESSION['usuarioNome'], $_SESSION['usuarioLogin'], $_SESSION['usuarioSenha']);
// Manda pra tela de login
header("Location: ".$_SG['paginaLogin']);
}
30/06/2010 8:39pm
(~14 anos atrás)
(~14 anos atrás)
Marcos, descobri... O connect.php estava no include e não na pgina que o chama.
Obrigado pela dica!
Obrigado pela dica!