Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Rochedo

erro session_start();

Recommended Posts

Olá pessoal, meu nome eduardo so novo aqui no forum e em php tambem e to precisando de um help.

 

seguinte, to com um sistema de autenticaçao de usuario e ele ta dando o seguinte erro quando envio os dados pelo formulario:

 

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/fauna/result.php:4) in /var/www/fauna/verifica.php on line 5

 

verifica.php

 

CODE
<?php

session_start();

if((!isset($_SESSION[iduser])) and (!isset($_SESSION[nomeuser])))

header("location:index.php");

?>

 

ja verifiquei se nao ha espaços em branco entre <?php e ?>, ja coloquei ob_start(); logo abaixo do <?php, ja retirei todas as linha em branco na esperança de resolver o problema mas o erro continua.

 

alguem pode ajudar?

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
session_start();
if((!isset($_SESSION[iduser])) and (!isset($_SESSION[nomeuser])))
header("location:index.php");
?>

faz assim sem espacos!

 

nao pula linha. faz desse jeito ve se dá!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que colocar o ob_start antes de td.

 

Se sua página é só isso

<?php
ob_start();
session_start();
if((!isset($_SESSION[iduser])) and (!isset($_SESSION[nomeuser])))
header("location:index.php");
?>

Se você usa uma outra página para carregar essa a página "pai" tem q ta com o ob_start() no começo.

 

o ob_start() tem q ser o primeiro a ser executado

 

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, entao, fiz exatamente assim e continua o mesmo erro.

esse tbm estava acontecendo quando eu chamava o logout.php

 

CODE
<?php

session_start();

header("location:index.php");

unset($_SESSION[iduser]);

unset($_SESSION[nomeuser]);

?>

 

mas ai eu troquei o header de lugar, da ultima para segunda linha e paro de dar erro tentei o mesmo com o autentica.php mas nao deu certo :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
session_start();
if((!isset($_SESSION[iduser])) and (!isset($_SESSION[nomeuser])))
header("location:index.php");
?>

faz assim sem espacos!

 

nao pula linha. faz desse jeito ve se dá!

 

opa, entao, fiz exatamente assim e continua o mesmo erro.

esse tbm estava acontecendo quando eu chamava o logout.php

 

CODE
<?php

session_start();

header("location:index.php");

unset($_SESSION[iduser]);

unset($_SESSION[nomeuser]);

?>

mas ai eu troquei o header de lugar, da ultima para segunda linha e paro de dar erro tentei o mesmo com o autentica.php mas nao deu certo :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que colocar o ob_start antes de td.

 

Se sua página é só isso

<?php
ob_start();
session_start();
if((!isset($_SESSION[iduser])) and (!isset($_SESSION[nomeuser])))
header("location:index.php");
?>

Se você usa uma outra página para carregar essa a página "pai" tem q ta com o ob_start() no começo.

 

o ob_start() tem q ser o primeiro a ser executado

 

Flw

cara, a pagina que chama autentica.php é a result.php. Entao tenho que colocar ob_start no inicio do arquivo result.php, se é que eu entendi. tipo assim:

 

result.php

CODE
<html>

<head><title>sistem de escala fauna silvestre</title></head>

<body>

<?php

ob_start();

require_once("config.php");

require_once("verifica.php");

 

$sql = mysql_query("select * from tb_usuarios")or die("erro na consulta sql");

$row = mysql_num_rows($sql);

echo "<table border='1' cellpadding='0' cellspacing='0' bordercolor='#CCCCCC'>";

echo "<tr>";

echo "<td>ID</td>";

echo "<td>NOME</td>";

echo "<td>Username</td>";

meu, se for isso continua dando o mesmo erro.

mas obrigado mesmo assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca o session_start() na página result.php

 

tipo assim:

 

<?

session_start();

?>

<html>

<head>

<title>sistem de escala fauna silvestre</title>

</head>

<body>

<?php ob_start();

require_once("config.php");

require_once("verifica.php");

$sql = mysql_query("select * from tb_usuarios")or die("erro na consulta sql");

$row = mysql_num_rows($sql);

echo "<table border='1' cellpadding='0' cellspacing='0' bordercolor='#CCCCCC'>"; echo "<tr>";

echo "<td>ID</td>";

echo "<td>NOME</td>";

echo "<td>Username</td>";

aí no verifica você tirar o session_start();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode ter nenhum HTML ou include antes de um ob_start();

 

o correto seria:

<?php ob_start(); ?>
<html>
<head><title>sistem de escala fauna silvestre</title></head>
<body>
<?php
require_once("config.php");
require_once("verifica.php");

$sql = mysql_query("select * from tb_usuarios")or die("erro na consulta sql");
$row = mysql_num_rows($sql);
echo "<table border='1' cellpadding='0' cellspacing='0' bordercolor='#CCCCCC'>";
echo "<tr>";
echo "<td>ID</td>";
echo "<td>NOME</td>";
echo "<td>Username</td>";

O ob_start() tem q ser a PRIMEIRA coisa da página

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca o session_start() na página result.php

 

tipo assim:

 

<?

session_start();

?>

<html>

<head>

<title>sistem de escala fauna silvestre</title>

</head>

<body>

<?php ob_start();

require_once("config.php");

require_once("verifica.php");

$sql = mysql_query("select * from tb_usuarios")or die("erro na consulta sql");

$row = mysql_num_rows($sql);

echo "<table border='1' cellpadding='0' cellspacing='0' bordercolor='#CCCCCC'>"; echo "<tr>";

echo "<td>ID</td>";

echo "<td>NOME</td>";

echo "<td>Username</td>";

aí no verifica você tirar o session_start();

 

ae eduardo, cara olha só, coloquei @ na frente do session_start(); no arquivo verifica,php e funcionou. O problema é que nao faço a menor ideia do que significa esse simbolo na frente de session. sera que isso ta certo?bom funcionado ta pelo menos http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

CODE
<?php

@session_start();

if((!isset($_SESSION[iduser])) and (!isset($_SESSION[nomeuser])))

header("location:index.php");

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho muito a adicionar além dos comentários e soluções já propostas, mas creio que se está funcionando .... heuhehue...

 

Inicie sua página result.php com esse código:

<?php
session_cache_expire(5);
session_start();
//... restante
?>

e no verifica.php mantenha (caso for uma página distinta, não inclusa, caso contrário elimine...):

<?php
session_start();
//... restante
?>

Apelando: tente excluir os arquivos temporarios de internet ai e teste novamente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O @ serve para omitir mensagens de erro =p...

eh o que o Skyo falou, mas se não funcionou eu num sei mais o que pode ser.. huauauhauh

 

vou continuar pesquisando ok?

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aaaeeeeeeeehhhhh, funcionou, e o melhor: sem @ na frente do session....uheuheuhuehuhe, retirei o session_start do verifica.php e adicionei no result.php antes das tags html. Na verdade um problema simples de resolver mas nao pra novatos como eu. Gostaria de agradecer a paciencia do pessoal que me ajudou ae, valew!!!!!

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.