Ir para conteúdo

POWERED BY:

Arquivado

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

tigredonorte

[Resolvido] Problema com session_start()

Recommended Posts

bem... pesquisei sobre este erro no forum e encontrei este artigo:

[post='http://forum.imasters.com.br/index.php?/topic/208445-erro-warning-session-start-functionsession-start/']session_start()[/post]

 

No entanto, colocar o session_star() no início do arquivo não resolveu o problema.

segue abaixo meu código:

 

index.php

<?
   session_start();
   require_once("includes/includes/diretorios.php");
   include_once("includes/config/IndexConfig.php");
   include_once("includes/config/ArquivoConfig.php"); 
?>
<html>
[body]
<? require_once(banner.php);?>
<!-- codigo omitido, mas nao utilizo outro session start aqui -->
[body]
</html>
Este banner.php no qual eu faço uma requisição é que prescisa utilizar a session, pois se o usuario estiver logado, aparece uma tela de boas vindas, se nao estiver, aparece a tela de login.

 

os arquivos diretorios.php

indexconfig.php

e arquivoconfig.php

possuem apenas variaveis e valores, nao dando nenhuma saida no browser.

 

banner.php

<? 
//session_start();
require_once("diretorios.php");?>
<style></style>
<html>
<body>
<? if(!session_is_registered("nome_usuario"))
        {//exibirá a tela de login?>
<!--html code-->
<? }else{ //exibirá a tela de usuario logado?>
<!--html code-->
<? }?>
</body>
</html>

 

Só para constar:

- li também o manual do php sobre session e não consegui também.

- Tentei inserir ob_start(); no inicio do codigo, mas o erro persiste

Compartilhar este post


Link para o post
Compartilhar em outros sites

você nao especicicou qual o erro...

 

mas observa se nao está chamando duas vezes a session_start(), provavelmente dará erro..

 

verifica o conteudo das includes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, pode ter sido só erro na hora de digitar o seu código aqui, mas veja que existe um ponto antes de abrir a tag <?php onde você inicia o session_start(). Isto causa erro, pois o . é uma saída de header e o session_start() não pode ser enviado após já ter sido enviado qualquer saída para o header do navegador.

<?// aqui que eu falo.
  session_start();
  require_once("includes/includes/diretorios.php");
  include_once("includes/config/IndexConfig.php");
  include_once("includes/config/ArquivoConfig.php");

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

tigredonorte,

 

siga as dicas dos amigos

e para maiores informações sobre o uso de sessions consulte:

 

Dicas para uso de variáveis de sessão

 

bem... tentei fazer o que foi pedido. Removi as linhas vazias do inicio e do final dos arquivos, excluí todos os session_start() dos outros arquivos, assim como os comandos header. Enfim, fiz tudo que estava no tópico acima, mas não consegui resolver. Postarei aqui o código completo dos arquivos, provavelmente deixei passar despercebido algum erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o código:

 

index.php

<? session_start();
require_once("includes/includes/diretorios.php");
include_once("includes/config/IndexConfig.php");
include_once("includes/config/ArquivoConfig.php");
?>
<html>
<head>
<meta name="autor" content="Thompson Moreira Filgueiras">
<meta name="description" content="tudo para sua auto escola">
<meta name="keywords" content="transito">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Portal do Transito</title>
<script src="includes/ice/ice.js" type="text/javascript"></script>
<link href="css/ThomStyle.css" rel="stylesheet" type="text/css"/>
<style type="text/css">
<!--
.borda
{
	background:#F2F2F2 url(Images/Bordas/borda2.gif);
}
-->
</style>
</head>
<body bgcolor="#E8E8E8">
<table width="1024" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="300" colspan="3"><? require_once("includes/includes/Banner.php"); ?></td>
  </tr>
</table>
<table width="1024" height="788" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr class="FundoColorido2">
    <th width="1031" height="788" align="center" valign="top" bgcolor="#FFFFFF" class="BannerStyle" scope="row"><table width="1024" border="0" align="center" cellspacing="0"  bgcolor="">
      <tr>
        <td height="788" colspan="2" align="left" valign="top" bgcolor="#F2F2F2"><table width="883" height="631" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td width="448" height="112" align="left" valign="top"><table width="98%" height="112" border="0" align="center">
              <tr>
                <td width="100%" height="21" align="center" valign="middle" class="MainStyle"><span class="whiteFont"><? echo $Notice01Title ?>
                  </spam></td>
              </tr>
              <tr>
                <td width="100%" height="80" align="left" valign="top" class="TextoReportagem"><? echo $Notice01Conteudo ?></td>
              </tr>
            </table>
            <td width="435" align="left" valign="top" class="ImageBackground" bordercolor="#005500"><table width="98%" height="111" border="0" align="center">
              <tr>
                <td width="100%" height="21" align="center" valign="middle" class="MainStyle"><span class="whiteFont"><? echo $Notice02Title ?></span></td>
              </tr>
              <tr>
                <td width="100%" height="80" align="left" valign="top" class="TextoReportagem"><? echo $Notice02Conteudo ?></td>
              </tr>
            </table></td>
          </tr>
          <tr>
            <td height="10" colspan="2" align="left" valign="top"> </td>
          </tr>
          <tr>
            <td height="484" colspan="2" align="center" valign="top"><table width="70%" border="0" cellpadding="0" cellspacing="0">
              <tr>
                <td height="20" colspan="3" align="center" valign="middle" class="MainStyle"><span class="whiteFont"><? echo $MainNoticeTitle?></span></td>
              </tr>
              <tr>
                <td colspan="3" align="left" valign="top" class="TextoReportagem"><? echo $MainNoticeConteudo?></td>
              </tr>
            </table></td>
          </tr>
  </table></td>
         	 <td width="13%" height="100%" align="center" valign="top" bgcolor="#F2F2F2"><table width="124" border="0" cellspacing="0" cellpadding="0" frame="box">
         	   <tr>
         	     <td width="124" align="center" valign="middle">Manual Habilitação</td>
       	     </tr>
         	   <tr>
         	     <td align="center" valign="middle"><a href="Produtos/ManualHabilitacao.php" class="Propaganda"><img src="Images/Products/ManualHabilitacao.jpg" alt="" width="125" border="0" /></a></td>
       	     </tr>
         	   <tr>
         	     <td align="center" valign="middle">Por: R$12,00</td>
       	     </tr>
         	   <tr>
         	     <td> </td>
       	     </tr>
         	   <tr>
         	     <td align="center" valign="middle">Manual Renovação</td>
       	     </tr>
         	   <tr>
         	     <td align="center" valign="top"><a href="Produtos/ManualLegislacao.php" class="Propaganda"><img src="Images/Products/Renovacao.jpg" alt="" width="120" height="160" border="0" /></a></td>
       	     </tr>
         	   <tr>
         	     <td align="center"><span class="Propaganda">Por: R$10,00</span></td>
       	     </tr>
         	   <tr>
         	     <td> </td>
       	     </tr>
         	   <tr>
         	     <td align="center" valign="middle">Simuladão Detran</td>
       	     </tr>
         	   <tr>
         	     <td align="center" valign="middle"><a href="Produtos/ManualSimuladao.php" class="Propaganda"><img src="Images/Products/Simuladao.jpg" alt="" width="120" height="160" border="0" /></a></td>
       	     </tr>
         	   <tr>
         	     <td align="center" valign="middle"><span class="Propaganda">Por: R$10,00</span></td>
       	     </tr>
       	   </table></td>
    </tr>
    </table></th>
  </tr>
</table>
</body>
</html>

diretorios.php

<? if ($_SERVER['SERVER_NAME'] == "localhost")
	{
		$dir_Main = "http://localhost/transito/";
		$dir_ImageBanner = "http://localhost/transito/Images/BANNER.jpg";
	}
?>

indexconfig.php

<? $Notice01Title = "cruzeiro perde titulo";
	$Notice01Date = "17/05/2009";
	$Notice01Conteudo = "cruzeiro perde o titulo da libertadores ao perder de 2x1 no mineirao";
	
	$Notice02Title = "fim da guerra mundial";
	$Notice02Date = "09/12/1945";
	$Notice02Conteudo = "apos estados unidos usar bomba nuclear, japao sai da guerra";
	
	$Notice03Title = "brasil é tetra";
	$Notice03Date = "20/06/1994";
	$Notice03Conteudo = "ganhamos na disputa de penaltis";
	
	$MainNoticeTitle = "titulo da noticia";
	$MainNoticeDate = "26/06/1964";
	$MainNoticeConteudo = "conteudo da noticia";

banner.php

<? require_once("diretorios.php");?>
<style type="text/css">
<!--
#apDiv1 {
	position:relative;
	left:0px;
	top:0px;
	width:100%;
	height:250px;
	z-index:1;
	visibility: visible;
	background-color: #F0F0F0;
	background-image: url(<? echo $dir_Main . 'css/banner-site.gif'?>);
}
-->
</style>
<link href="<? echo $dir_Main . "css/ThomStyle.css" ?>" rel="stylesheet" type="text/css" />
<link href="../../css/ThomStyle.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
#apDiv4 {
	position:static;
	left:100px;
	top:50px;
	width:1024px;
	height:300px;
	z-index:1;
}
-->
</style>
<div id="apDiv4">
    <div id="apDiv1" align="center" class="BannerStyle"><span class="BannerStyle"></span></div>
<div class="ButtonBar" id="apDiv2"> 
        <a href="<? echo $dir_Main . "index.php"?>" class="BannerStyle">Home</a>      
        <a href="<? echo $dir_Main . "Produtos.php"?>" class="BannerStyle" >Produtos</a>      
        <a href="<? echo $dir_Main . "Acessoria.php"?>" class="BannerStyle">Acessoria</a>      
        <a href="<? echo $dir_Main . "Palestras.php"?>" class="BannerStyle">Palestras</a>      
        <a href="<? echo $dir_Main . "Arquivo.php"?>" class="BannerStyle">Arquivo</a>     
        <a href="<? echo $dir_Main . "faleConosco.php"?>" class="BannerStyle"> Fale Conosco</a> 
    </div>
<div id="apDiv3">
      <? if(!session_is_registered("nome_usuario"))
        {?>
      <form id="form1" name="form1" method="post" action="<? echo $dir_Main ."login/cria_cookies.php"?>" class="ImageBackground">
        <label>Usuário
          <input name="usuarioSite" type="text" class="ImageBackground" id="usuarioSite" />
        </label>
        <label>Senha
          <input name="senhaSite" type="password" class="ImageBackground" id="senhaSite" />
        </label>
        <label>
          <input name="Logar" type="submit" class="descricao" id="Logar" value="Entrar" />
        </label>
                                                                                        <a href="<? echo $dir_Main ."compra/comprarJuridico.php"?>" class="LoginStyle">Sou Pessoa Jurídica</a>
      </form>
      <? }else{ $nome_usuario = $_SESSION["nome_usuario"];?>
      <p class="ImageBackground"> Bem Vindo <span class="TituloVendas"><? echo $nome_usuario; ?></span>                   <a href="<? echo $dir_Main ."login/logout.php"?>" class="LoginStyle" >Logout </a> <a href="<? echo $dir_Main . "login/alteraCadastro2.php"?>" class="LoginStyle">    Alterar Cadastro</a></p>
      <? }?>
  </div>
</div>

arquivoconfig.php

<? $ArquivoTitle01 = "omg";
	$ArquivoDate01 = "20/12/1988";
	$ArquivoNotice01 = "lol";
?>

ice.js

//acredito que um arquivo em javascript nao deve intervir no header, até porque só utilizo ele para alguns efeitos depois da página carregada, qualquer coisa posto o //código se necessario, nao o fiz por ser um arquivo extenso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eis o problema, qual ?...

 

Está fazendo INCLUDE em uma página cuja mesma tem o session_start(), consequentemente a página que recebe ela, também está com session_start(), o que acaba gerando o conflito e dando o erro de header, verifique seus includes, páginas que serão inclusas em páginas que já tem o session declarado, não precisam ter o session_start.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eis o problema, qual ?...

 

Está fazendo INCLUDE em uma página cuja mesma tem o session_start(), consequentemente a página que recebe ela, também está com session_start(), o que acaba gerando o conflito e dando o erro de header, verifique seus includes, páginas que serão inclusas em páginas que já tem o session declarado, não precisam ter o session_start.

 

Abraços.

 

Não entendi o0

só tem session_start no index.php

não tem nos outros includes.

 

ou você está me propondo colocar o session_start() em outro arquivo talvez?

Compartilhar este post


Link para o post
Compartilhar em outros sites

segundo o que você postou, aparentemente nao há erros.

 

existem sim outros tipos de erros mas nao tem relação com o problema em questão.

 

 

você está usando UTF-8

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

certifique-se de que o editor de textos esteja em UTF-8.

 

o UTF-8, insere no primeiro byte, um caracter "oculto".

 

o qual, pode ser corrompido se o arquivo for editado com algum conjunto de caracteres conflitantes.

 

o problema é que, mesmo corrompido, se o software editor de textos não for muito bom, não conseguirá detectar ou exibir o caracter, que na verdade estará criando uma quebra de linha na primeira linha. Uma "quebra de linha invisível"

 

certifique-se de que não há esse conflito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não acredito que era isso -.-

realmente tinha um caractere oculto na primeira linha do meu código. foi só remove-lo que resolveu o problema. Estava editando no dreamweaver cs4 mas nele nao dava para ver. Quando li seu post baixei um editor com suport utf-8 e consegui visualizarop caractere

 

bom... problema resolvido, obrigado a todos pela ajuda.

Podem encerrar o tópico

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.