Jump to content


Photo

Problema Com Session Start


  • Faça o login para participar
3 replies to this topic

#1 Igor.

Igor.

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 30/03/2008, 07:50

Bom dia.
quando eu vou iniciar uma seção, a seção não inicia e aparece este erro:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\portal\paginas.php:1) in C:\xampp\htdocs\portal\paginas.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\portal\paginas.php:1) in C:\xampp\htdocs\portal\paginas.php on line 1

paginas.php
[codebox]<? ob_start(); ?>
<?php session_start();
include('configuracao.php');
$pagina = "$_GET[pagina]";
if(!$pagina) {
echo"Clique em um dos menus para entrar em uma p&aacute;gina.";
}
elseif($pagina == 'home') {
echo" Bem-vindo ao Portal Habbotic, aqui voce pode conferir todas as not&iacute;cias, atualizacoes e etc...";
}
elseif($pagina == 'noticias') {
$noticias['query'] = mysql_query("SELECT * FROM noticias");
echo"<b>Nome - Categoria</b><br>";
while($noticia = mysql_fetch_array($noticias['query'])) {
echo"<br><a href='?pagina=noticia&id=$noticia[id]'>$noticia[titulo]</a> - $noticia[categoria]";
}
}
elseif($pagina == 'habbotic') {
$noticias['query'] = mysql_query("SELECT * FROM noticias WHERE categoria ='habbotic' or categoria='todas'");
echo"<b>Nome</b><br>";
while($noticia = mysql_fetch_array($noticias['query'])) {
echo"<br><a href='?pagina=noticia&id=$noticia[id]'>$noticia[titulo]</a>";
}
}
elseif($pagina == 'habbo') {
$noticias['query'] = mysql_query("SELECT * FROM noticias WHERE categoria ='habbo' or categoria='todas'");
echo"<b>Nome</b><br>";
while($noticia = mysql_fetch_array($noticias['query'])) {
echo"<br><a href='?pagina=noticia&id=$noticia[id]'>$noticia[titulo]</a>";
}
}
elseif($pagina == 'noticia') {
$noticias['query'] = mysql_query("SELECT * FROM noticias WHERE id='$_GET[id]'");
$resultado = mysql_fetch_array($noticias['query']);
echo"<b><i>Por $resultado[autor]</i> - $resultado[data]</b><br>";
$resultadoo = str_replace('
', '<br>', $resultado[noticia]);
echo"<br>$resultadoo";
}
elseif($pagina == 'admin') {
if(!$_SESSION['admin']) {
if(!$_GET['login']) {
echo"$_SESSION[admin]<form action='?pagina=admin&login=log' method='post'>
Usuario: <input type='text' name='usuario'><br>
Senha: <input type='password' name='senha'><br>
<input type='submit' value='OK'></form>";
} else {
$entrar['query'] = mysql_query("SELECT * FROM usuarios WHERE nome='$_POST[usuario]'");
$fetch = mysql_fetch_array($entrar['query']);
if($fetch['nome'] == $_POST['usuario'] && $fetch['senha'] == $_POST['senha']) {
$_SESSION['admin'] = true;
$_SESSION['usuario'] = $_POST['usuario'];
echo"<script>window.location.href='?pagina=admin';</script>";
} else {
echo"Usuario ou senha incorretos.";
}
}
} else {
echo"<b>Bem-vindo, $_SESSION[usuario]!<br><br><a href='?pagina=admin&act=noticia'>Adicionar Noticia</a>";
}
}
echo"<style type='text/css'>
.overlay {
background-image: url(preto.gif);
position: absolute;
filter: Alpha(Opacity=50);
width: 100%;
height: 100%;
display: none;
left: 0px;
top: 0px;
}
</style>";
?>
<? ob_end_flush(); ?>[/codebox]

aguardo respostas...

Edição feita por: savior, 30/03/2008, 09:18.


#2 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 30/03/2008, 09:20

Primeiro, não faça isso:
<? ob_start(); ?>
<?php session_start();

certo seria isto:
<?php
   ob_start(); 
   session_start();

Tenta fazer assim para evitar o erro (:

[]'s

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#3 Tohma

Tohma

    12 Horas

  • Usuários
  • 202 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 30/03/2008, 10:52

Bom dia .... eu estou com o mesmo problema ... aparece o mesmo erro qdo estou utilizando uma classe em um arquivo para rodar no Crontab do server ... ja viram esse erro?

Se eu usar linguagem procedual ... ele até q funciona ... mas se eu criar uma classe e declarar por exemplo $this->VAR .... ele me aparece esse xxxxxx erro ... se eu declarar public antes de qualquer método ... esse erro aparece tb ... apesar de tudo ... ele simplesmente nao lê a variavel declarada e ignora a 'public' antes dos métodos .... mas executa o script até onde vai o erro ...

eu conversei com o pessoal do suporte do server .... mas qdo eles nao sabem ... simplesmente me dizem q eu nao tenho suporte avançado .... :rolleyes:

obs: no server tem o php4 e o php5 instalados .... minha desconfianca é q o crontab roda no php4 enquanto q a mesma classe funciona no site q roda php5 ...


se alguem ja viu algo parecido por favor me ajudem a salvar meu emprego .... :blink:


ah! ... desculpe usar o post do amigo ... mas achei o problema o mesmo entao nao quis abrir outro .... :assobio:

Edição feita por: Tohma, 30/03/2008, 11:00.

DBPlex dbplex.com.br

#4 Guilherme Luiz

Guilherme Luiz

    Normal

  • Usuários
  • 78 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 30/03/2008, 13:33

vale lembrar pessoal que session_start() deve vir antes de qualquer código html...

então para eveitar problemas (é o que eu pelo menos faço) sempre coloca <?php session_start(); ?> na página "mãe" ou index (se preferir) do seu site...

ou seja se todos as outras pagina vão aparecer por uma query string ou por include dentro da index... na index coloque o session_start();

mas assim... sempre que for fazer uma página que contenha sessions lembre-se

session_start(); deverá vir antes de qualquer código em html !! Ou seja... sempre coloque na primeira linha da página caso ela contenha códigos html, caso contrário só inicie as sessions quando necessário


Edição feita por: Guilherme Luiz, 30/03/2008, 13:36.

just its a lie when the truth is found !




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq