Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

bcs_ptx

Warning: Cannot modify header information

Recommended Posts

Fala ai raça, seguinte uma dúvida, fiz um sistema aqui e no meu localhost, funciona tudo legal, mas fui passar para p servidor, e deu um erro, mas não entendi o pq do erro,e não consegui achar a resposta...quanod passei mostrou esse erro, oque pode ser? Obrigado

 

Warning: Cannot modify header information - headers already sent by (output started at /programas/apache/htdocs/discomed/extranet/logar.php:2) in /programas/apache/htdocs/discomed/extranet/logar.php on line 18

 

linha 18 é essa header("location: invalido.php");

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu ja tinha tentado,coloquei <?php ob_start(); ?>,no começo da pagina e deu

 

 

Warning: Cannot modify header information - headers already sent by (output started at /programas/apache/htdocs/discomed/extranet/logar.php:1) in /programas/apache/htdocs/discomed/extranet/logar.php on line 18

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem bom? cara não entendi, tipo meu script da pagina que da erro é esse, e se eu tirar o header("location: invalido.php"); e colocar echo 'invalido';,

ele mostra invalido, mas tem usuarios cadastrados.

 

<?php include('conexao.php'); ?>

 

<?php

 

if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {

header("Location: index.php"); exit;

}

 

$usuario = mysql_real_escape_string($_POST['usuario']);

$senha = mysql_real_escape_string($_POST['senha']);

 

$sql = "SELECT id, nome, nivel FROM usuarios WHERE (usuario = '". $usuario ."') AND (senha = '". $senha ."') AND (ativo = 1) LIMIT 1";

$query = mysql_query($sql);

if (mysql_num_rows($query) != 1) {

 

header("location: invalido.php");

exit;

} else {

$resultado = mysql_fetch_assoc($query);

 

if (!isset($_SESSION)) session_start();

 

$_SESSION['UsuarioID'] = $resultado['id'];

$_SESSION['UsuarioNome'] = $resultado['nome'];

$_SESSION['UsuarioNivel'] = $resultado['nivel'];

 

header("Location: home.php"); exit;

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pior que não tenho, na real só queria saber por que esta aconetcendo isso, por que ja coloquei outros sistema no ar, inclusive nesse banco, e não deu esse erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

No começo do codigo

<?php
if (!isset($_SESSION)) session_start(); 

include('conexao.php'); 

// restante do codigo

$_SESSION['UsuarioID'] = $resultado['id'];
$_SESSION['UsuarioNome'] = $resultado['nome'];
$_SESSION['UsuarioNivel'] = $resultado['nivel'];

header("Location: home.php"); exit;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

@gremio10

Não sei, talvez RESOLVER O PROBLEMA porque ta dando erro de 'BOM'

Clique aqui

 

 

@topic

Pior que não tenho, na real só queria saber por que esta aconetcendo isso, por que ja coloquei outros sistema no ar, inclusive nesse banco, e não deu esse erro.

 

É porque na sua máquina a sua saida de buffer(output_buffering) deve estar ativo, o que em quase NUNCA está habilitado em servidores compartilhados.

 

 

Já aproveitando o topico, bcs_ptx, não precisa fazer assim

<?php include ('arquivo.php'); ?>
<?php funcao(); ?>
<?php
# CODIGO
?>

// Faça assim em apenas 1 tag.

<?php 
include ('arquivo.php'); 

# CODIGO
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
No começo do codigo

 

session_start();

 

O que session vai ajudar com header ?

Isso acontece porque você está tentando modificar o header de uma página que o mesmo já foi modificado.

 

você pode usar uma meta tag ao inves dos headers ..

 

<META http-equiv="refresh" content="0;URL=http://foo.bar">

 

pois eles sempre vão dar problema quando o session_start estiver acima deles .. isto e porque o session_start ja armazena os cabeçalhos no browser , sendo assim seu header ja vai estar modificado .. ^_^

 

ou então você pode fazer por script ..

<script>window.location="pagina.php"</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele ta usando session ?

 

O Andrey ja explicou acima o motivo e estou apenas complementando o codigo com as dicas dele

 

<?php 
if (!isset($_SESSION)) session_start();

include 'conexao.php';

if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {
echo '<META http-equiv="refresh" content="0;URL=index.php">'; exit;
}

$usuario = mysql_real_escape_string($_POST['usuario']);
$senha   = mysql_real_escape_string($_POST['senha']);

$sql     = "SELECT id, nome, nivel FROM usuarios WHERE (usuario = '". $usuario ."') AND (senha = '". $senha ."') AND (ativo = 1) LIMIT 1";
$query   = mysql_query($sql);

if (mysql_num_rows($query) != 1) {
echo '<META http-equiv="refresh" content="0;URL=invalido.php">';
exit;
} else {

$resultado = mysql_fetch_assoc($query);

$_SESSION['UsuarioID']    = $resultado['id'];
$_SESSION['UsuarioNome']  = $resultado['nome'];
$_SESSION['UsuarioNivel'] = $resultado['nivel'];

header("Location: home.php"); exit;
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.